On HEAD, checking in testcase for 25695. But it doesnt work for reason's unknown. And its not this particular issue thats the culprit. getStringValue returns blank..:(

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353481 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Avik Sengupta 2004-01-01 19:12:46 +00:00
parent 425f468924
commit df53351856
2 changed files with 56 additions and 0 deletions

Binary file not shown.

View File

@ -407,6 +407,62 @@ extends TestCase {
HSSFCell cell = row.getCell((short)0);
System.out.println(cell.getStringCellValue());
}
/*Tests read and write of Unicode strings in formula results
* bug and testcase submitted by Sompop Kumnoonsate
* The file contains THAI unicode characters.
*/
public void testUnicodeStringFormulaRead() throws Exception {
String filename = System.getProperty("HSSF.testdata.path");
filename=filename+"/25695.xls";
FileInputStream in = new FileInputStream(filename);
HSSFWorkbook w;
w = new HSSFWorkbook(in);
in.close();
HSSFCell a1 = w.getSheetAt(0).getRow(0).getCell((short) 0);
HSSFCell a2 = w.getSheetAt(0).getRow(0).getCell((short) 1);
HSSFCell b1 = w.getSheetAt(0).getRow(1).getCell((short) 0);
HSSFCell b2 = w.getSheetAt(0).getRow(1).getCell((short) 1);
HSSFCell c1 = w.getSheetAt(0).getRow(2).getCell((short) 0);
HSSFCell c2 = w.getSheetAt(0).getRow(2).getCell((short) 1);
HSSFCell d1 = w.getSheetAt(0).getRow(3).getCell((short) 0);
HSSFCell d2 = w.getSheetAt(0).getRow(3).getCell((short) 1);
assertEquals("String Cell value", a1.getStringCellValue(), a2.getStringCellValue());
assertEquals("String Cell value", b1.getStringCellValue(), b2.getStringCellValue());
assertEquals("String Cell value", c1.getStringCellValue(), c2.getStringCellValue());
assertEquals("String Cell value", d1.getStringCellValue(), d2.getStringCellValue());
File xls = File.createTempFile("testFormulaUnicode", ".xls");
FileOutputStream out = new FileOutputStream(xls);
w.write(out);
out.close();
in = new FileInputStream(xls);
HSSFWorkbook rw = new HSSFWorkbook(in);
in.close();
HSSFCell ra1 = rw.getSheetAt(0).getRow(0).getCell((short) 0);
HSSFCell ra2 = rw.getSheetAt(0).getRow(0).getCell((short) 1);
HSSFCell rb1 = rw.getSheetAt(0).getRow(1).getCell((short) 0);
HSSFCell rb2 = rw.getSheetAt(0).getRow(1).getCell((short) 1);
HSSFCell rc1 = rw.getSheetAt(0).getRow(2).getCell((short) 0);
HSSFCell rc2 = rw.getSheetAt(0).getRow(2).getCell((short) 1);
HSSFCell rd1 = rw.getSheetAt(0).getRow(3).getCell((short) 0);
HSSFCell rd2 = rw.getSheetAt(0).getRow(3).getCell((short) 1);
assertEquals("Re-Written String Cell value", a1.getStringCellValue(), ra1.getStringCellValue());
assertEquals("Re-Written String Cell value", b1.getStringCellValue(), rb1.getStringCellValue());
assertEquals("Re-Written String Cell value", c1.getStringCellValue(), rc1.getStringCellValue());
assertEquals("Re-Written String Cell value", d1.getStringCellValue(), rd1.getStringCellValue());
assertEquals("Re-Written Formula String Cell value", a1.getStringCellValue(), ra2.getStringCellValue());
assertEquals("Re-Written Formula String Cell value", b1.getStringCellValue(), rb2.getStringCellValue());
assertEquals("Re-Written Formula String Cell value", c1.getStringCellValue(), rc2.getStringCellValue());
assertEquals("Re-Written Formula String Cell value", d1.getStringCellValue(), rd2.getStringCellValue());
}
}