使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开
- 问题
- 方案
问题
在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件提示如下信息
方案
在仔细检查代码后发现并不存在业务代码逻辑问题,而且同样的代码在另一台电脑上是可行的,只是两台电脑打开Excel的软件不同,一台是WPS(可行),一台是Microsoft Office专业增强版2019(不可行),说明是生成的Excel文件的版本格式差异。查询POI文档,发现POI提供HSSFWorkBook、XSSFWorkBook、SXSSFWorkBook这三个类来操作Excel:
- HSSFWorkBook:适用于Excel97-03,文件扩展名为.xls;
- XSSFWorkBook:适用于Excel07,文件扩展名为.xlsx;
- SXSSFWorkBook:XSSFWorkBook升级;
再次检查自己的代码,发现自己使用的是HSSFWorkBook,所以导致文件不可读,改为XSSFWorkBook或SXSSFWorkBook即可
//之前
WorkBook workBook=new HSSFWorkBook();
...
//现在
WorkBook workBook=new SXSSFWorkBook();
...