Closed sec7lQ closed 2 years ago
Bug描述 MultiSheet策略下,rowspan不为0的行是最后一行时,生成的blankTd会被下一个sheet错误领取
Bug复现 模板文件: freemarker模板.txt 出现错误的文件: 结算确认单2022-09-09 (6).xlsx 如图:
sheet0创建的空单元格,即8、9、10、11行中被rowspan覆盖的单元格,被sheet1错误领取,从而替代掉了sheet1中8、9、10、11行中本应渲染的值
bug产生原因 rowspan不为0时创建出被覆盖的单元格存储至AbstractExcelFactory类中的stagingTds列表, 提供给接下来被覆盖的行领取,虽然下面的行领取后会进行删除操作,但当rowspan不为0的行作为sheet的最后一行时,创建的单元格并没有被领取的必要,但错误的延续到了下一个sheet,被下一个sheet对应行领取
修复建议 将stagingTds设为public,在table操作完成后清除stagingTds
4.3.0.RC1版本修复,感谢🙏
Bug描述 MultiSheet策略下,rowspan不为0的行是最后一行时,生成的blankTd会被下一个sheet错误领取
Bug复现 模板文件: freemarker模板.txt 出现错误的文件: 结算确认单2022-09-09 (6).xlsx 如图:
sheet0创建的空单元格,即8、9、10、11行中被rowspan覆盖的单元格,被sheet1错误领取,从而替代掉了sheet1中8、9、10、11行中本应渲染的值
bug产生原因 rowspan不为0时创建出被覆盖的单元格存储至AbstractExcelFactory类中的stagingTds列表, 提供给接下来被覆盖的行领取,虽然下面的行领取后会进行删除操作,但当rowspan不为0的行作为sheet的最后一行时,创建的单元格并没有被领取的必要,但错误的延续到了下一个sheet,被下一个sheet对应行领取
修复建议 将stagingTds设为public,在table操作完成后清除stagingTds