如何使用 Apache POI 将 HSSFWorkbook 转换为 XSSFWorkbook?
如何转换
org.apache.poi.hssf.usermodel.HSSFWorkbook
为
org.apache.poi.xssf.usermodel.XSSFWorkbook
Apache POI?
环境:
- JSE1.6
- JBossAS 4.3.2
- POI 3.7
How to convert
org.apache.poi.hssf.usermodel.HSSFWorkbook
to
org.apache.poi.xssf.usermodel.XSSFWorkbook
in Apache POI?
Environment :
- JSE1.6
- JBossAS 4.3.2
- POI 3.7
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
此代码改编自我在 Coderanch 论坛
this code has been adapted from what I found here on coderanch forum
由于上述所有答案都没有帮助,因此这里是工作代码:
只需编写一个填充必要字段并使用transform()的主方法即可。
Since all of the above answers don't help, here is working code:
Just write a main method that fills the necessary fields and uses transform().
请参阅文章升级到 POI 3.5,包括将现有 HSSF 用户模型代码转换为 SS 用户模型(例如XSSF 和 HSSF)。 这里有一个示例,概括如下以下:
See the article Upgrading to POI 3.5, including converting existing HSSF Usermodel code to SS Usermodel (for XSSF and HSSF). There's an example here, recapitulated below:
我的问题解决方案。工作代码
My solution to the problem. Working code
这是我的方法
Here is my approach
我已经实现了一些代码来复制工作簿,无论其类型如何:它使用接口,因此您可以使用 HSSFWorkbook、XSSFWorkbook 和 SXSSFWorkbook。
这会复制带有图片、字体、样式和行的工作表:
对于我的用例,我需要在现有模板中插入新行并写入 SXSSFWorkbook,因此我不会直接复制所有工作表和行,而是选择要复制的工作表,然后复制其中需要的部分我想。
这是代码(我尝试删除所有测试,但也许我忘记了一些未使用的行)
I have implemented some code to copy workbooks no matter their type: It uses interfaces, so you can use HSSFWorkbook, XSSFWorkbook and SXSSFWorkbook.
This copies sheets with pictures, fonts, styles and rows:
For my use case I need to insert new rows in an existing template and write to an SXSSFWorkbook, so I don't copy all the sheets and rows directly but instead I choose the sheets i want to copy and then copy the portions of it that I want.
And here is the code (I tried to delete all my tests, but maybe I forgot some unused lines)