Open hnxiaoyuan opened 2 years ago
我这边测试是发现分多次 fill 的情况下,数据到 100 多行就会在 MS Excel 中打开报错,选择自动修复会丢失部分单元格数据,但是 macOS 预览和 Numbers 打开都没问题
这个是个 bug ,我后面想办法修复,你map 都要 put(key,null)
这个是个 bug ,我后面想办法修复,你map 都要 put(key,null)
@zhuangjiaju 我也遇到同样的问题了,您说的map 都要 put(key,null)指的是什么意思? 我的需求有点不太一样,我的是多列 这个例子里面的data2,data3的数据样式。而且模板也是用easyexcel生成的临时模板。请问我该怎么处理数据? 我的data也是一个for循环从一个List里面取的,循环里面根据index分别取的data{index} 我每次fill的时候,尝试将data(index)当前index之外的数据都设置为null,表格正常,但是出现了错行。 我的代码: 模板内容{data1.attriName} {data1.code} {data2.attriName} {data2.code} ........其余模板列模板类似如图(我测试的时候列数较多,超过4组data以上肯定有问题):
不知道为啥,我代码贴上去没法格式化。 换句话说,您自己的例子,compositeFill函数,模板里面多加几组data,数据量整到到100以上。就很容易发现问题
try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(template).build()){ WriteSheet writeSheet = EasyExcel.writerSheet(0).build(); for (int index=0;index<ruleAttrs.size();index++) { excelWriter.fill(new FillWrapper(StrUtil.format("data{}", index), data1(index) ), writeSheet); }
private List<Map<String,String>> data1(int i){ List<Map<String,String>> list = new ArrayList<>(); for (int ss=0;ss<100*i;ss++){ Map<String, String> data1 = new HashMap<>(); data1.put("attriName", String.valueOf(ss)); data1.put("code", String.valueOf(ss)); list.add(data1); } return list; }
我懂了,每一行的map有值的填值,没值的填null。 这样麻烦了一些,但是问题解决了,希望尽快解决该问题。
hi,请问有后续嘛?这个bug修复了嘛?
版本3.3.4问题还存在
触发场景描述 使用项目中已有的测试demo进行模版测试list填充(master分支)
使用项目的demo代码测试可以触发Bug
提示的异常或者没有达到的效果 填充过程未出现异常,但填充完后excel无法打开,出现错误,如下图:
另外:发现2.2.11不会有此问题