]> source.dussan.org Git - poi.git/commitdiff
misc bug fixes
authorYegor Kozlov <yegor@apache.org>
Sat, 17 May 2008 14:03:27 +0000 (14:03 +0000)
committerYegor Kozlov <yegor@apache.org>
Sat, 17 May 2008 14:03:27 +0000 (14:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@657358 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/hssf/data/24207.xls [new file with mode: 0755]
src/testcases/org/apache/poi/hssf/data/36947.xls [new file with mode: 0755]
src/testcases/org/apache/poi/hssf/data/39634.xls [new file with mode: 0755]
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java

diff --git a/src/testcases/org/apache/poi/hssf/data/24207.xls b/src/testcases/org/apache/poi/hssf/data/24207.xls
new file mode 100755 (executable)
index 0000000..eca5642
Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/24207.xls differ
diff --git a/src/testcases/org/apache/poi/hssf/data/36947.xls b/src/testcases/org/apache/poi/hssf/data/36947.xls
new file mode 100755 (executable)
index 0000000..4c7bde6
Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/36947.xls differ
diff --git a/src/testcases/org/apache/poi/hssf/data/39634.xls b/src/testcases/org/apache/poi/hssf/data/39634.xls
new file mode 100755 (executable)
index 0000000..0f76bff
Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/39634.xls differ
index b87510c24e01dc5caf03d107ff1fb180068c4f2c..1a62af43566ee20ae940629d56a09789ae3149c6 100644 (file)
@@ -910,4 +910,45 @@ public final class TestBugs extends TestCase {
         writeOutAndReadBack(wb);
         assertTrue("no errors writing sample xls", true);
     }
+
+    /**
+     * Bug 21334: "File error: data may have been lost" with a file
+     * that contains macros and this formula:
+     * {=SUM(IF(FREQUENCY(IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),""),IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),""))>0,1))}
+     */
+    public void test21334() {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sh = wb.createSheet();
+        HSSFCell cell = sh.createRow(0).createCell((short)0);
+        String formula = "SUM(IF(FREQUENCY(IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),\"\"),IF(LEN(V4:V220)>0,MATCH(V4:V220,V4:V220,0),\"\"))>0,1))";
+        cell.setCellFormula(formula);
+
+        HSSFWorkbook wb_sv = writeOutAndReadBack(wb);
+        HSSFCell cell_sv = wb_sv.getSheetAt(0).getRow(0).getCell((short)0);
+        assertEquals(formula, cell_sv.getCellFormula());
+    }
+
+    public void test36947() throws Exception {
+       HSSFWorkbook wb = openSample("36947.xls");
+        assertTrue("no errors reading sample xls", true);
+        writeOutAndReadBack(wb);
+        assertTrue("no errors writing sample xls", true);
+    }
+
+    /**
+     * Bug 42448: Can't parse SUMPRODUCT(A!C7:A!C67, B8:B68) / B69
+     */
+    public void test42448(){
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFCell cell = wb.createSheet().createRow(0).createCell((short)0);
+        cell.setCellFormula("SUMPRODUCT(A!C7:A!C67, B8:B68) / B69");
+        assertTrue("no errors parsing formula", true);
+    }
+
+    public void test39634() throws Exception {
+       HSSFWorkbook wb = openSample("39634.xls");
+        assertTrue("no errors reading sample xls", true);
+        writeOutAndReadBack(wb);
+        assertTrue("no errors writing sample xls", true);
+    }
 }