EasyPoi生成Excel,WPS能打开而Office打不开。

文章讨论了使用EasyPoi在Excel版本转换(HSSFvsXSSF)、代码打包(Maven压缩)以及字符编码(GBKtoUTF-8)方面遇到的问题,指出导出时要根据版本选择适当的格式,并确保编码统一为UTF-8以避免打开异常。
摘要由CSDN通过智能技术生成

首先Excel文件根据后缀名可分为xlsx, xls。xls为office 03版本以下生成的扩展名, xlsx为07版本的扩展名,正常来说03版本的是无法打开xlsx文件的。
使用EasyPoi导出xlsx文件, wps能正常打开,而使用office时提示文件已损坏。
对以上情况提出三种假设:

  1. easypoi导出excel版本的问题。
  2. 代码打成jar包后,会压缩源文件,读取文件流方式有问题。
  3. 字符编码问题。

1.easypoi导出excel版本的问题
使用easypoi导出xlsx时,却使用了xls方式导出。easypoi默认使用HSSF导出,所以在导出xlsx时,需将导出版本类型设置为ExcelType.XSSF
image.png
更改以上配置后,导出的文件可正常打开。假设1成立。
2.代码打成jar包后,会压缩源文件,读取文件流方式有问题。
对于模板文件,并非通过easypoi导出的,而是通过Resource读流写流方式。所以假设1此时是不成立的。maven打成jar会将相关文件都进行压缩
1)通过EasyPOI的WorkBook方式进行导出
image.png
2)maven忽略对xlsx文件的压缩
image.png

  1. 字符编码问题。

虽然假设1,2均成立,但导出的文件都需要经过修复才可正常打开,默认为gbk编码,需要设置为utf-8。
总结:
1.easypoi导出文件, 需要根据导出版本选择XSSF, HSSF形式
2.默认导出模板文件,可通过easypoi的workbook导出或不对xlsx,xls文件进行打包
无论哪种,都需要将编码格式设置为utf-8。因为office是使用utf-8编码的,打开gbk编码的文件会出现异常,而wps对此类进行了兼容处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值