POI XSSFSheet shiftRows bug问题解决
问题
业务中需要往给定格式的excel中写入数据。
使用shiftRows函数往excel中插入新行时,xls文件没问题,xlsx文件问题多多
- 执行如下代码,xls格式插入了3行,xlsx格式却只插入了2行
- xlsx执行shiftRows操作之后,合并单元格丢失
- xlsx执行shiftRows操作之后,用excel打开提示格式有问题,用wps打开正常
InputStream inp = new FileInputStream("/Users/shao/Downloads/模板.xlsx"); Workbook templateWorkbook = WorkbookFactory.create(inp); Sheet sheet = templateWorkBook.getSheetAt(0); sheet.shiftRows(5, sheet.getLastRowNum(), 1); sheet.shiftRows(5, sheet.getLastRowNum(), 1); sheet.shiftRows(5, sheet.getLastRowNum(), 1); OutputStream outputStream = new FileOutputStream("/Users/shao/Downloads/模板输出.xlsx"); templateWorkbook.write(outputStream);
解决
poi 4.1.1版本修复了该bug,升级到最新的4.1.2,问题解决
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>
原因
poi bug
参考
https://stackoverflow.com/questions/55980407/apache-poi-shiftrows-corrupts-file-and-deletes-content
http://poi.apache.org/changes.html
以上就是POI XSSFSheet shiftRows bug问题解决的详细内容,更多关于POI XSSFSheet shiftRows bug的资料请关注脚本之家其它相关文章!
相关文章
SpringMVC中的DispatcherServlet详细解析
这篇文章主要介绍了SpringMVC中的DispatcherServlet详细解析,DispatcherServlet也是一个Servlet,它也能通过Servlet的API来响应请求,从而成为一个前端控制器,Web容器会调用Servlet的doGet()以及doPost()等方法,需要的朋友可以参考下2023-12-12Spring Boot+微信小程序开发平台保存微信登录者的个人信息
这篇文章主要介绍了Spring Boot+微信小程序开发平台保存微信登录者的个人信息,本文主要介绍 wx.login和wx.getProfile接口,因篇幅所限,不能对其它接口做详细介绍 ,有兴趣者可以查阅官方文档2022-05-05java 通过发送json,post请求,返回json数据的方法
下面小编就为大家分享一篇java 通过发送json,post请求,返回json数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-03-03java 中的static关键字和final关键字的不同之处
java 中的static关键字和final关键字的不同之处,需要的朋友可以参考一下2013-03-03Springboot Thymeleaf模板文件调用Java类静态方法
这篇文章主要介绍了Springboot Thymeleaf模板文件调用Java类静态方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2007-09-09
最新评论