fix excel sax bug

This commit is contained in:
Looly
2020-12-12 02:09:16 +08:00
parent 726b55a742
commit 3033114e06
5 changed files with 31 additions and 33 deletions

View File

@@ -137,9 +137,6 @@ public class SheetDataSaxHandler extends DefaultHandler {
// 其它标签忽略
}
/**
* s标签结束的回调处理方法
*/
@Override
public void characters(char[] ch, int start, int length) {
if (false == this.isInSheetData) {
@@ -159,8 +156,11 @@ public class SheetDataSaxHandler extends DefaultHandler {
lastFormula.append(ch, start, length);
break;
}
} else{
// 按理说内容应该为"<v>内容</v>"但是某些特别的XML内容不在v或f标签中此处做一些兼容
// issue#1303@Github
lastContent.append(ch, start, length);
}
// 其它标签忽略
}
// --------------------------------------------------------------------------------------- Private method start

View File

@@ -64,7 +64,7 @@ public class ExcelSaxReadTest {
@Test
@Ignore
public void readBySaxTest2() {
ExcelUtil.readBySax("d:/test/default.xlsx", -1, (sheetIndex, rowIndex, rowList) -> Console.log(rowList));
ExcelUtil.readBySax("d:/test/456789.xlsx", "0", (sheetIndex, rowIndex, rowList) -> Console.log(rowList));
}
private RowHandler createRowHandler() {
@@ -140,9 +140,7 @@ public class ExcelSaxReadTest {
public void dateReadXlsTest() {
List<String> rows = new ArrayList<>();
ExcelUtil.readBySax("data_for_sax_test.xls", 0,
(i, i1, list) ->{
rows.add(StrUtil.toString(list.get(0)));
}
(i, i1, list) -> rows.add(StrUtil.toString(list.get(0)))
);
Assert.assertEquals("2020-10-09 00:00:00", rows.get(1));
@@ -179,8 +177,7 @@ public class ExcelSaxReadTest {
@Test
@Ignore
public void readXlsmTest(){
ExcelUtil.readBySax("d:/test/WhiteListTemplate.xlsm", -1, (sheetIndex, rowIndex, rowlist) -> {
Console.log("[{}] [{}] {}", sheetIndex, rowIndex, rowlist);
});
ExcelUtil.readBySax("d:/test/WhiteListTemplate.xlsm", -1,
(sheetIndex, rowIndex, rowlist) -> Console.log("[{}] [{}] {}", sheetIndex, rowIndex, rowlist));
}
}