guanquan.wang

Results 227 comments of guanquan.wang

目前读图片会一次性解析到list保存到内存,几十万图片会造成内存不足触发频繁GC导致CPU飙高服务器GG

这个文件我本地出不来,使用EEC发现drawing.xml有大量重复的节点,这个文件有近90M而EEC读取图片使用dom4j普通模式读取缓慢所以造成假死,图片显示不出来是因为被隐藏了

使用如下方法可以极大提升读取速度 1. 自定义XMLDrawings并覆写parseDrawings方法,处理“隐藏”图片和重复节点 2. 自定义ExcelReader并覆写init方法引用第一步自定义XMLDrawings 3. 使用自定义ExcelReader ``` // 自定义XMLDrawings public static class MyXMLDrawings extends XMLDrawings { public MyXMLDrawings(ExcelReader reader) { super(reader); } // Parse drawings.xml protected List parseDrawings(ZipFile zipFile,...

> 我先参照你的方法试试 上面的方法是否有效?

场景一:少了哪些单元格?我这边看是正常的 场景二:可以使用filter来过滤,比如你给出的两个表格中间有3个空行,就可以通过这3个空行来判断,也可以使用合计来判断是否到了表格末尾

如果你提前知道每个Table的行数也可以使用filter来做 ``` // Table1 过滤行号小于13的行 reader.sheet(0).asFullSheet().copyOnMerged().header(1).rows().filter(row -> row.getRowNum()

> > 场景一:少了哪些单元格?我这边看是正常的 > > 这是我的代码: > > @Test > public void test5() { > var path = "/Users/cnscottluo/Downloads/测试表格.xlsx"; > try (ExcelReader reader = ExcelReader.read(Paths.get(path))) { > reader.sheet(0).asFullSheet().copyOnMerged().header(1).rows().map(Row::toMap).forEach(System.out::println); > }...

1. xls不支持读取公式 2. 数目有问题是指引用的范围和原来的范围不一致吗?有测试代码的话可以贴出来