diff --git a/src/testcases/org/apache/poi/hssf/data/15375.xls b/src/testcases/org/apache/poi/hssf/data/15375.xls new file mode 100644 index 000000000..99ab193be Binary files /dev/null and b/src/testcases/org/apache/poi/hssf/data/15375.xls differ diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index a6f696b97..d49cf64f7 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -74,6 +74,8 @@ extends TestCase { super(s); } + /** Test reading AND writing a complicated workbook + *Test opening resulting sheet in excel*/ public void test15228() throws java.io.IOException { @@ -109,7 +111,8 @@ extends TestCase { assertTrue("File Should Exist", file.exists()); } - + /**Test writing a hyperlink + * Open resulting sheet in Excel and check that A1 contains a hyperlink*/ public void test23094() throws Exception { File file = File.createTempFile("test23094",".xls"); FileOutputStream out = new FileOutputStream(file); @@ -165,6 +168,125 @@ extends TestCase { assertTrue("No exception throws", true); } + /** test rewriting a file with large number of unique strings + *open resulting file in Excel to check results!*/ + public void test15375() { + + try { + String filename = System.getProperty("HSSF.testdata.path"); + filename=filename+"/15375.xls"; + FileInputStream in = new FileInputStream(filename); + HSSFWorkbook wb = new HSSFWorkbook(in); + HSSFSheet sheet = wb.getSheetAt(0); + + HSSFRow row = sheet.getRow(5); + HSSFCell cell = row.getCell((short)3); + if (cell == null) + cell = row.createCell((short)3); + + // Write test + cell.setCellType(HSSFCell.CELL_TYPE_STRING); + cell.setCellValue("a test"); + + // change existing numeric cell value + + HSSFRow oRow = sheet.getRow(14); + HSSFCell oCell = oRow.getCell((short)4); + oCell.setCellValue(75); + oCell = oRow.getCell((short)5); + oCell.setCellValue("0.3"); + + // Write the output to a file + File f = File.createTempFile("test15375",".xls"); + FileOutputStream fileOut = new FileOutputStream(f); + wb.write(fileOut); + fileOut.close(); + } + catch (java.io.FileNotFoundException ex) { + ex.printStackTrace(); + } + catch (java.io.IOException ex) { + ex.printStackTrace(); + } + + } + + /** test writing a file with large number of unique strings + *open resulting file in Excel to check results!*/ + + public void test15375_2() throws Exception{ + + + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sheet = wb.createSheet(); + + String tmp1 = null; + String tmp2 = null; + String tmp3 = null; + + for (int i = 0; i < 6000; i++) { + tmp1 = "Test1" + i; + tmp2 = "Test2" + i; + tmp3 = "Test3" + i; + + HSSFRow row = sheet.createRow((short)i); + + HSSFCell cell = row.createCell((short)0); + cell.setCellValue(tmp1); + cell = row.createCell((short)1); + cell.setCellValue(tmp2); + cell = row.createCell((short)2); + cell.setCellValue(tmp3); + } + File f = File.createTempFile("test15375-2",".xls"); + FileOutputStream fileOut = new FileOutputStream(f); + wb.write(fileOut); + fileOut.close(); + } + /** another test for the number of unique strings issue + *test opening the resulting file in Excel*/ + public void test22568() { + int r=2000;int c=3; + + HSSFWorkbook wb = new HSSFWorkbook() ; + HSSFSheet sheet = wb.createSheet("ExcelTest") ; + + int col_cnt=0, rw_cnt=0 ; + + col_cnt = c; + rw_cnt = r; + + HSSFRow rw = null ; + HSSFCell cell =null; + rw = sheet.createRow((short)0) ; + //Header row + for(short j=0; j