You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2005/07/20 18:56:26 UTC

svn commit: r219946 - /cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java

Author: vgritsenko
Date: Wed Jul 20 09:56:26 2005
New Revision: 219946

URL: http://svn.apache.org/viewcvs?rev=219946&view=rev
Log:
do not swallow exceptions
convert boolean/numeric cell values to string

Modified:
    cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java?rev=219946&r1=219945&r2=219946&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/poi/java/org/apache/cocoon/generation/HSSFGenerator.java Wed Jul 20 09:56:26 2005
@@ -123,21 +123,17 @@
     /**
      * Generate XML data.
      */
-    public void generate() throws SAXException {
-        try {
-            HSSFWorkbook workbook =
-                    new HSSFWorkbook(this.inputSource.getInputStream());
-            writeXML(workbook);
-        } catch (Exception e) {
-            getLogger().error("Error generating XML Data", e);
-        }
+    public void generate() throws SAXException, IOException {
+        HSSFWorkbook workbook =
+                new HSSFWorkbook(this.inputSource.getInputStream());
+        writeXML(workbook);
     }
 
 
     /**
      * Writes out the workbook data as XML, without formatting information
      */
-    private void writeXML(HSSFWorkbook workbook) throws Exception {
+    private void writeXML(HSSFWorkbook workbook) throws SAXException {
         this.contentHandler.startDocument();
         start("Workbook");
         start("SheetNameIndex");
@@ -163,25 +159,24 @@
             if (formatting) {
                 writeStyles(workbook, sheet);
             }
+
             start("Cells");
-            HSSFRow row = null;
-            HSSFCell cell = null;
-            Iterator cells = null;
-            Iterator rows = sheet.rowIterator();
+            final Iterator rows = sheet.rowIterator();
             while (rows.hasNext()) {
-                row = (HSSFRow) rows.next();
-                cells = row.cellIterator();
+                final HSSFRow row = (HSSFRow) rows.next();
+                final Iterator cells = row.cellIterator();
                 while (cells.hasNext()) {
-                    cell = (HSSFCell) cells.next();
+                    final HSSFCell cell = (HSSFCell) cells.next();
                     attribute("Row", Integer.toString(row.getRowNum()));
                     attribute("Col", Short.toString(cell.getCellNum()));
                     attribute("ValueType", getValueType(cell.getCellType()));
                     start("Cell");
-                    data(cell.getStringCellValue());
+                    data(getValue(cell));
                     end("Cell");
                 }
             }
             end("Cells");
+
             end("Sheet");
         }
         end("Sheets");
@@ -231,9 +226,32 @@
     }
 
     /**
+     * Returns the cell value.
+     * @param cell	POI cell
+     * @return the cell value
+     */
+    private String getValue(HSSFCell cell) {
+        switch (cell.getCellType()) {
+            case HSSFCell.CELL_TYPE_BLANK:
+                return "";
+            case HSSFCell.CELL_TYPE_BOOLEAN:
+                return Boolean.toString(cell.getBooleanCellValue());
+            case HSSFCell.CELL_TYPE_NUMERIC:
+                return Double.toString(cell.getNumericCellValue());
+            case HSSFCell.CELL_TYPE_ERROR:
+                return "#ERR" + cell.getErrorCellValue();
+            case HSSFCell.CELL_TYPE_FORMULA:
+            case HSSFCell.CELL_TYPE_STRING:
+            default:
+                return cell.getStringCellValue();
+        }
+    }
+
+    /**
      * Writes out the workbook data as XML, with formatting information
      */
-    private void writeStyles(HSSFWorkbook workbook, HSSFSheet sheet) throws Exception {
+    private void writeStyles(HSSFWorkbook workbook, HSSFSheet sheet)
+    throws SAXException {
         start("Styles");
         HSSFRow row = null;
         HSSFCell cell = null;