XSSFWorkbook花费很多时间来加载一个Excel(.xlsx)文件

我在我的程序中使用下面的代码

FileInputStream fileFile = null; try { fileFile = new FileInputStream(new File("D:\\work\\result\\n01jfvjnjn.xlsx")); } catch (FileNotFoundException e) { e.printStackTrace(); } XSSFWorkbook workbookFile = null; try { workbookFile = new XSSFWorkbook(fileFile); } catch (IOException e) { e.printStackTrace(); } XSSFSheet sheetFile = workbookFile.getSheet("Sheet1"); 

这个xlsx文件有20张,每张有100行,其中有一些5MB的文件。 我只是去具体的表和打印第一行和第一列的价值,它需要近30秒。 XSSFWorkbook系列花费了大量的时间。 我分配了3GB的堆,我试着下面的代码没有区别。

 File file = new File("C:\\D\\Data Book.xlsx"); OPCPackage opcPackage = OPCPackage.open(file); XSSFWorkbook workbook = new XSSFWorkbook(opcPackage); 

有没有更好的方法来做到这一点?

下面是一些课程的链接,分几步处理Xlsx大问题。 你只需要处理你从它得到的Array [String],并把它们放在一个String Arrays列表中。

链接: http : //lchenaction.blogspot.nl/2013/12/how-to-read-super-large-excel-and-csv.html