]> source.dussan.org Git - poi.git/commitdiff
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-63924...
authorNick Burch <nick@apache.org>
Tue, 6 May 2008 16:48:48 +0000 (16:48 +0000)
committerNick Burch <nick@apache.org>
Tue, 6 May 2008 16:48:48 +0000 (16:48 +0000)
https://svn.apache.org:443/repos/asf/poi/trunk

........
  r653815 | nick | 2008-05-06 16:37:45 +0100 (Tue, 06 May 2008) | 1 line

  Improve JavaDocs about iterators and gaps
........
  r653816 | nick | 2008-05-06 16:38:08 +0100 (Tue, 06 May 2008) | 1 line

  Fix int -> short issues that no longer apply
........
  r653831 | nick | 2008-05-06 17:38:34 +0100 (Tue, 06 May 2008) | 1 line

  Fix up the functionMetadata.txt stuff to be end-to-end UTF8. Was assuming it before, but breaking on some systems, while now it ought to work fine everywhere
........

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@653835 13f79535-47bb-0310-9956-ffa450edef68

src/contrib/src/org/apache/poi/hssf/usermodel/contrib/HSSFCellUtil.java
src/java/org/apache/poi/hssf/record/formula/function/FunctionMetadataReader.java
src/java/org/apache/poi/hssf/usermodel/HSSFRow.java
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata-asGenerated.txt
src/resources/main/org/apache/poi/hssf/record/formula/function/functionMetadata.txt
src/testcases/org/apache/poi/hssf/record/formula/function/ExcelFileFormatDocFunctionExtractor.java

index 7c17614ec318b6509a7d913a32fcefab3b92196c..5e2cf1e0fe760ad5ec63857e544bd34d5c37c3bf 100644 (file)
@@ -55,10 +55,10 @@ public class HSSFCellUtil
      */
     public static HSSFRow getRow( int rowCounter, HSSFSheet sheet )
     {
-        HSSFRow row = sheet.getRow( (short) rowCounter );
+        HSSFRow row = sheet.getRow( rowCounter );
         if ( row == null )
         {
-            row = sheet.createRow( (short) rowCounter );
+            row = sheet.createRow( rowCounter );
         }
 
         return row;
@@ -66,7 +66,8 @@ public class HSSFCellUtil
 
 
     /**
-     *  Get a specific cell from a row. If the cell doesn't exist, then create it.
+     * Get a specific cell from a row. If the cell doesn't exist, 
+     *  then create it.
      *
      *@param  row     The row that the cell is part of
      *@param  column  The column index that the cell is in.
@@ -74,11 +75,11 @@ public class HSSFCellUtil
      */
     public static HSSFCell getCell( HSSFRow row, int column )
     {
-        HSSFCell cell = row.getCell( (short) column );
+        HSSFCell cell = row.getCell( column );
 
         if ( cell == null )
         {
-            cell = row.createCell( (short) column );
+            cell = row.createCell( (short)column );
         }
         return cell;
     }
@@ -98,7 +99,7 @@ public class HSSFCellUtil
     {
         HSSFCell cell = getCell( row, column );
 
-        cell.setCellValue( value );
+        cell.setCellValue(new HSSFRichTextString(value));
         if ( style != null )
         {
             cell.setCellStyle( style );
@@ -222,7 +223,7 @@ public class HSSFCellUtil
     public static HSSFCell translateUnicodeValues( HSSFCell cell )
     {
 
-        String s = cell.getStringCellValue();
+        String s = cell.getRichStringCellValue().getString(); 
         boolean foundUnicode = false;
 
         for ( Iterator i = unicodeMappings.entrySet().iterator(); i.hasNext(); )
index 2cdc540e6f22fb922422e4a56b63ce7ac5a4a965..9ea428c8df2b6d68ddfb7802c8187d016bdf3ecd 100644 (file)
@@ -21,6 +21,7 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
@@ -58,7 +59,10 @@ final class FunctionMetadataReader {
                        throw new RuntimeException("resource '" + METADATA_FILE_NAME + "' not found");
                }
 
-               BufferedReader br = new BufferedReader(new InputStreamReader(is));
+               BufferedReader br = null;
+               try {
+                       br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
+               } catch(UnsupportedEncodingException e) { /* never happens */ }
                FunctionDataBuilder fdb = new FunctionDataBuilder(400);
 
                try {
@@ -153,7 +157,7 @@ final class FunctionMetadataReader {
                        case 'R': return Ptg.CLASS_REF;
                        case 'A': return Ptg.CLASS_ARRAY;
                }
-               throw new IllegalArgumentException("Unexpected operand type code '" + code + "'");
+               throw new IllegalArgumentException("Unexpected operand type code '" + code + "' (" + (int)code.charAt(0) + ")");
        }
 
        /**
index 5a154c6faceabafef804529bdcc04e398d936b7e..353ba18456f234ae8b58535234b70dcbe7f44995 100644 (file)
@@ -498,8 +498,10 @@ public final class HSSFRow implements Comparable, Row {
     }
 
     /**
-     * @return cell iterator of the physically defined cells.  Note element 4 may
-     * actually be row cell depending on how many are defined!
+     * @return cell iterator of the physically defined cells. 
+     * Note that the 4th element might well not be cell 4, as the iterator
+     *  will not return un-defined (null) cells.
+     * Call getCellNum() on the returned cells to know which cell they are.
      */
     public Iterator cellIterator()
     {
index c829553325def111d56a1527ec4083af4341e753..0098e03a9d07f3707853dd3e9ebb1a0b88a21142 100644 (file)
@@ -717,6 +717,7 @@ public class HSSFSheet implements org.apache.poi.ss.usermodel.Sheet
     /**
      * @return an iterator of the PHYSICAL rows.  Meaning the 3rd element may not
      * be the third row if say for instance the second row is undefined.
+     * Call getRowNum() on each row if you care which one it is.
      */
     public Iterator rowIterator()
     {
index 60d2f1fe8bf82d3f378e7982abc845db9dec672d..8ec4bc62d3039bdabb56abc600def378ce93803d 100644 (file)
@@ -29,7 +29,7 @@
 7      MAX     1       30      V       R               \r
 8      ROW     0       1       V       R               \r
 9      COLUMN  0       1       V       R               \r
-10     NA      0       0       V       \96               \r
+10     NA      0       0       V                    \r
 11     NPV     2       30      V       V R             \r
 12     STDEV   1       30      V       R               \r
 13     DOLLAR  1       2       V       V V             \r
@@ -38,7 +38,7 @@
 16     COS     1       1       V       V               \r
 17     TAN     1       1       V       V               \r
 18     ARCTAN  1       1       V       V               \r
-19     PI      0       0       V       \96               \r
+19     PI      0       0       V                    \r
 20     SQRT    1       1       V       V               \r
 21     EXP     1       1       V       V               \r
 22     LN      1       1       V       V               \r
@@ -53,8 +53,8 @@
 31     MID     3       3       V       V V V           \r
 32     LEN     1       1       V       V               \r
 33     VALUE   1       1       V       V               \r
-34     TRUE    0       0       V       \96               \r
-35     FALSE   0       0       V       \96               \r
+34     TRUE    0       0       V                    \r
+35     FALSE   0       0       V                    \r
 36     AND     1       30      V       R               \r
 37     OR      1       30      V       R               \r
 38     NOT     1       1       V       V               \r
@@ -80,7 +80,7 @@
 60     RATE    3       6       V       V V V V V V             \r
 61     MIRR    3       3       V       R V V           \r
 62     IRR     1       2       V       R V             \r
-63     RAND    0       0       V       \96       x       \r
+63     RAND    0       0       V            x       \r
 64     MATCH   2       3       V       V R R           \r
 65     DATE    3       3       V       V V V           \r
 66     TIME    3       3       V       V V V           \r
@@ -91,7 +91,7 @@
 71     HOUR    1       1       V       V               \r
 72     MINUTE  1       1       V       V               \r
 73     SECOND  1       1       V       V               \r
-74     NOW     0       0       V       \96       x       \r
+74     NOW     0       0       V            x       \r
 75     AREAS   1       1       V       R               \r
 76     ROWS    1       1       V       R               \r
 77     COLUMNS 1       1       V       R               \r
 215    JIS     1       1       V       V               x\r
 219    ADDRESS 2       5       V       V V V V V               \r
 220    DAYS360 2       2       V       V V             x\r
-221    TODAY   0       0       V       \96       x       \r
+221    TODAY   0       0       V            x       \r
 222    VDB     5       7       V       V V V V V V V           \r
-227    MEDIAN  1       30      V       R \85             \r
-228    SUMPRODUCT      1       30      V       A \85             \r
+227    MEDIAN  1       30      V       R            \r
+228    SUMPRODUCT      1       30      V       A            \r
 229    SINH    1       1       V       V               \r
 230    COSH    1       1       V       V               \r
 231    TANH    1       1       V       V               \r
 247    DB      4       5       V       V V V V V               \r
 252    FREQUENCY       2       2       A       R R             \r
 261    ERROR.TYPE      1       1       V       V               \r
-269    AVEDEV  1       30      V       R \85             \r
+269    AVEDEV  1       30      V       R            \r
 270    BETADIST        3       5       V       V V V V V               \r
 271    GAMMALN 1       1       V       V               \r
 272    BETAINV 3       5       V       V V V V V               \r
 315    SLOPE   2       2       V       A A             \r
 316    TTEST   4       4       V       A A V V         \r
 317    PROB    3       4       V       A A V V         \r
-318    DEVSQ   1       30      V       R \85             \r
-319    GEOMEAN 1       30      V       R \85             \r
-320    HARMEAN 1       30      V       R \85             \r
-321    SUMSQ   0       30      V       R \85             \r
-322    KURT    1       30      V       R \85             \r
-323    SKEW    1       30      V       R \85             \r
+318    DEVSQ   1       30      V       R            \r
+319    GEOMEAN 1       30      V       R            \r
+320    HARMEAN 1       30      V       R            \r
+321    SUMSQ   0       30      V       R            \r
+322    KURT    1       30      V       R            \r
+323    SKEW    1       30      V       R            \r
 324    ZTEST   2       3       V       R V V           \r
 325    LARGE   2       2       V       R V             \r
 326    SMALL   2       2       V       R V             \r
 358    GETPIVOTDATA    2       30                              \r
 359    HYPERLINK       1       2       V       V V             \r
 360    PHONETIC        1       1       V       R               \r
-361    AVERAGEA        1       30      V       R \85             \r
-362    MAXA    1       30      V       R \85             \r
-363    MINA    1       30      V       R \85             \r
-364    STDEVPA 1       30      V       R \85             \r
-365    VARPA   1       30      V       R \85             \r
-366    STDEVA  1       30      V       R \85             \r
-367    VARA    1       30      V       R \85             \r
+361    AVERAGEA        1       30      V       R            \r
+362    MAXA    1       30      V       R            \r
+363    MINA    1       30      V       R            \r
+364    STDEVPA 1       30      V       R            \r
+365    VARPA   1       30      V       R            \r
+366    STDEVA  1       30      V       R            \r
+367    VARA    1       30      V       R            \r
index 590b455c4716267790689ba849b8f12b99419abb..e46e4174c42c9f64652e8a72622a1dbfd7aeda27 100644 (file)
@@ -31,7 +31,7 @@
 7      MAX     1       30      V       R               \r
 8      ROW     0       1       V       R               \r
 9      COLUMN  0       1       V       R               \r
-10     NA      0       0       V       \96               \r
+10     NA      0       0       V                    \r
 11     NPV     2       30      V       V R             \r
 12     STDEV   1       30      V       R               \r
 13     DOLLAR  1       2       V       V V             \r
@@ -40,7 +40,7 @@
 16     COS     1       1       V       V               \r
 17     TAN     1       1       V       V               \r
 18     ATAN    1       1       V       V               \r
-19     PI      0       0       V       \96               \r
+19     PI      0       0       V                    \r
 20     SQRT    1       1       V       V               \r
 21     EXP     1       1       V       V               \r
 22     LN      1       1       V       V               \r
@@ -55,8 +55,8 @@
 31     MID     3       3       V       V V V           \r
 32     LEN     1       1       V       V               \r
 33     VALUE   1       1       V       V               \r
-34     TRUE    0       0       V       \96               \r
-35     FALSE   0       0       V       \96               \r
+34     TRUE    0       0       V                    \r
+35     FALSE   0       0       V                    \r
 36     AND     1       30      V       R               \r
 37     OR      1       30      V       R               \r
 38     NOT     1       1       V       V               \r
@@ -82,7 +82,7 @@
 60     RATE    3       6       V       V V V V V V             \r
 61     MIRR    3       3       V       R V V           \r
 62     IRR     1       2       V       R V             \r
-63     RAND    0       0       V       \96       x       \r
+63     RAND    0       0       V            x       \r
 64     MATCH   2       3       V       V R R           \r
 65     DATE    3       3       V       V V V           \r
 66     TIME    3       3       V       V V V           \r
@@ -93,7 +93,7 @@
 71     HOUR    1       1       V       V               \r
 72     MINUTE  1       1       V       V               \r
 73     SECOND  1       1       V       V               \r
-74     NOW     0       0       V       \96       x       \r
+74     NOW     0       0       V            x       \r
 75     AREAS   1       1       V       R               \r
 76     ROWS    1       1       V       R               \r
 77     COLUMNS 1       1       V       R               \r
 215    JIS     1       1       V       V               x\r
 219    ADDRESS 2       5       V       V V V V V               \r
 220    DAYS360 2       2       V       V V             x\r
-221    TODAY   0       0       V       \96       x       \r
+221    TODAY   0       0       V            x       \r
 222    VDB     5       7       V       V V V V V V V           \r
-227    MEDIAN  1       30      V       R \85             \r
-228    SUMPRODUCT      1       30      V       A \85             \r
+227    MEDIAN  1       30      V       R            \r
+228    SUMPRODUCT      1       30      V       A            \r
 229    SINH    1       1       V       V               \r
 230    COSH    1       1       V       V               \r
 231    TANH    1       1       V       V               \r
 247    DB      4       5       V       V V V V V               \r
 252    FREQUENCY       2       2       A       R R             \r
 261    ERROR.TYPE      1       1       V       V               \r
-269    AVEDEV  1       30      V       R \85             \r
+269    AVEDEV  1       30      V       R            \r
 270    BETADIST        3       5       V       V V V V V               \r
 271    GAMMALN 1       1       V       V               \r
 272    BETAINV 3       5       V       V V V V V               \r
 315    SLOPE   2       2       V       A A             \r
 316    TTEST   4       4       V       A A V V         \r
 317    PROB    3       4       V       A A V V         \r
-318    DEVSQ   1       30      V       R \85             \r
-319    GEOMEAN 1       30      V       R \85             \r
-320    HARMEAN 1       30      V       R \85             \r
-321    SUMSQ   0       30      V       R \85             \r
-322    KURT    1       30      V       R \85             \r
-323    SKEW    1       30      V       R \85             \r
+318    DEVSQ   1       30      V       R            \r
+319    GEOMEAN 1       30      V       R            \r
+320    HARMEAN 1       30      V       R            \r
+321    SUMSQ   0       30      V       R            \r
+322    KURT    1       30      V       R            \r
+323    SKEW    1       30      V       R            \r
 324    ZTEST   2       3       V       R V V           \r
 325    LARGE   2       2       V       R V             \r
 326    SMALL   2       2       V       R V             \r
 358    GETPIVOTDATA    2       30                              \r
 359    HYPERLINK       1       2       V       V V             \r
 360    PHONETIC        1       1       V       R               \r
-361    AVERAGEA        1       30      V       R \85             \r
-362    MAXA    1       30      V       R \85             \r
-363    MINA    1       30      V       R \85             \r
-364    STDEVPA 1       30      V       R \85             \r
-365    VARPA   1       30      V       R \85             \r
-366    STDEVA  1       30      V       R \85             \r
-367    VARA    1       30      V       R \85             \r
+361    AVERAGEA        1       30      V       R            \r
+362    MAXA    1       30      V       R            \r
+363    MINA    1       30      V       R            \r
+364    STDEVPA 1       30      V       R            \r
+365    VARPA   1       30      V       R            \r
+366    STDEVA  1       30      V       R            \r
+367    VARA    1       30      V       R            \r
index 48a76e31d83d011f138dfde149461e7c19b28d1c..351e85cf8545ef41fdbac29335c726f03d616c46 100644 (file)
@@ -25,6 +25,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
@@ -354,13 +355,19 @@ public final class ExcelFileFormatDocFunctionExtractor {
        }
 
        private static void extractFunctionData(FunctionDataCollector fdc, InputStream is) {
-               System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");
-               
                XMLReader xr;
+               
                try {
+                       // First up, try the default one
                        xr = XMLReaderFactory.createXMLReader();
                } catch (SAXException e) {
-                       throw new RuntimeException(e);
+                       // Try one for java 1.4
+                       System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");
+                       try {
+                               xr = XMLReaderFactory.createXMLReader();
+                       } catch (SAXException e2) {
+                               throw new RuntimeException(e2);
+                       }
                }
                xr.setContentHandler(new EFFDocHandler(fdc));
 
@@ -383,7 +390,11 @@ public final class ExcelFileFormatDocFunctionExtractor {
                } catch (FileNotFoundException e) {
                        throw new RuntimeException(e);
                }
-               PrintStream ps = new PrintStream(os);
+               PrintStream ps = null;
+               try {
+                       ps = new PrintStream(os,true, "UTF-8");
+               } catch(UnsupportedEncodingException e) {}
+               
                outputLicenseHeader(ps);
                Class genClass = ExcelFileFormatDocFunctionExtractor.class;
                ps.println("# Created by (" + genClass.getName() + ")");