java - 如何解决 Apache POI“工作簿”可能尚未初始化
问题描述
我需要读取文件 excel,我正在使用 java spring boot,Apache poi。他们告诉我们
使用较新的 .xlsx 文件格式时,您将使用 XSSFWorkbook、XSSFSheet、XSSFRow 和 XSSFCell 类。要使用较旧的 .xls 格式,请使用 HSSFWorkbook、HSSFSheet、HSSFRow 和 HSSFCell 类。
这是我的代码:
Workbook workbook;
if (FileExtension == "xlsx"){
workbook = new XSSFWorkbook(excelFile);
}
else if (FileExtension == "xls"){
workbook = new HSSFWorkbook(excelFile);
}
Sheet datatypeSheet = workbook.getSheetAt(0);
现在我得到“工作簿”可能尚未初始化。如何解决?
解决方案
当前apache poi
版本提供WorkbookFactory。使用create
该类的方法,无需通过文件扩展名确定文件格式(XSSF
或)。HSSF
这些WorkbookFactory.create
方法正在创建XSSFWorkbook
或HSSFWorkbook
依赖于找到的文件内容。
所以使用:
...
Workbook workbook = WorkbookFactory.create(excelFile);
Sheet datatypeSheet = workbook.getSheetAt(0);
...
推荐阅读
- java - 如何使用标志变量让用户结束他的输入
- python - 扭曲的框架需要一些澄清
- python - Power BI 中的 Python - 在 matplotlib.pyplot.matshow 中显示列名而不是数字
- c++ - 通过代码在 Windows 操作系统上启用和禁用 DST
- arrays - 有没有办法将 postgres 数组映射到列表而不创建额外的表?
- angular - 使用表单获取用户输入并将该数据共享到不同的组件中以显示它
- node.js - 在 node.js 8.10 中使用异步瀑布的 AWS Lambda 查询
- java - 二进制/限定名称错误?开始于:
$ - vue.js - 在创建的函数中调用元素的 onscroll 事件
- html - HTML:检测 Unicode 并应用类