使用 apache poi 从扩展名为 xlsx 的 Excel 文件中读取数据时需要很长时间

While Reading the data from Excel file with extension xlsx using apache poi it takes long time

使用 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.");
    }

提升对答案的评论 - 不要尝试自己做,Apache POI 有内置代码为你做这件事!

你应该使用WorkbookFactory.create(File)来完成,例如

workbook = WorkbookFactory.create(file.getExcelFile());

Apache POI docs, use a File directly in preference to an InputStream 中所述,用于更快和更低的内存处理