fix for bug 25695
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/branches/REL_2_BRANCH@353479 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d7c485af78
commit
c966975782
@ -130,7 +130,7 @@ public class StringRecord
|
|||||||
field_2_unicode_flag = data[ 2 + offset ];
|
field_2_unicode_flag = data[ 2 + offset ];
|
||||||
if (isUnCompressedUnicode())
|
if (isUnCompressedUnicode())
|
||||||
{
|
{
|
||||||
field_3_string = StringUtil.getFromUnicode(data, 3 + offset, field_1_string_length );
|
field_3_string = StringUtil.getFromUnicodeHigh(data, 3 + offset, field_1_string_length );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
BIN
src/testcases/org/apache/poi/hssf/data/25695.xls
Normal file
BIN
src/testcases/org/apache/poi/hssf/data/25695.xls
Normal file
Binary file not shown.
@ -438,6 +438,62 @@ extends TestCase {
|
|||||||
//make sure we dont exception
|
//make sure we dont exception
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*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());
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user