我在程序中使用以下代码

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

关于java - XSSFWorkbook花费大量时间来加载excel(.xlsx)文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24636478/

10-09 00:21