在使用 apache poi 从扩展名为 xlsx 的 Excel 文件中读取数据时,需要很长时间
Posted
技术标签:
【中文标题】在使用 apache poi 从扩展名为 xlsx 的 Excel 文件中读取数据时,需要很长时间【英文标题】:While Reading the data from Excel file with extension xlsx using apache poi it takes long time 【发布时间】:2016-09-19 07:00:55 【问题描述】:使用 apache poi 读取扩展名为 xlsx 的 excel 文件时,识别扩展名需要很长时间。你能帮忙解释一下为什么需要很长时间吗?
if (file.getExcelFile().getOriginalFilename().endsWith("xls"))
workbook = new HSSFWorkbook(file.getExcelFile().getInputStream());
else if (file.getExcelFile().getOriginalFilename().endsWith("xlsx"))
workbook = new XSSFWorkbook(file.getExcelFile().getInputStream());
else
throw new IllegalArgumentException("Received file does not have a standard excel extension.");
【问题讨论】:
你为什么要自己做鉴定?你为什么不只使用WorkbookFactory.create(File)? 感谢 Gagrvarr 我已经用这种方法解决了这个问题。 【参考方案1】:对答案添加评论 - 不要尝试自己执行此操作,Apache POI 已为您执行此操作的内置代码!
你应该使用WorkbookFactory.create(File) 来做,例如只是
workbook = WorkbookFactory.create(file.getExcelFile());
如Apache POI docs, use a File directly in preference to an InputStream 中所述,用于更快和更低的内存处理
【讨论】:
以上是关于在使用 apache poi 从扩展名为 xlsx 的 Excel 文件中读取数据时,需要很长时间的主要内容,如果未能解决你的问题,请参考以下文章
JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案
创建错误的curropted.xlsx文件 - 无法找到匹配的构造函数:org.apache.poi.xssf.usermodel.XSSFWorkbook(java.io.FileOutputStr