大型xlsx文件的java读取部分

大型xlsx文件的java读取部分,java,apache-poi,xls,large-files,Java,Apache Poi,Xls,Large Files,什么是读取一部分非常大的xlsx文件的最快和内存占用较少的方法 目前我有以下代码: FileInputStream fis = null; fis = new FileInputStream("D:/verylargefile.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(fis); XSSFSheet sheet = workbook.getSheetAt(0); int r = sheet.getPhysicalNumberOfRows

什么是读取一部分非常大的xlsx文件的最快和内存占用较少的方法

目前我有以下代码:

FileInputStream fis = null;
fis = new FileInputStream("D:/verylargefile.xlsx");

XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);

int r = sheet.getPhysicalNumberOfRows();    
int c = sheet.getRow(1).getLastCellNum(); 

for (int row = 1; rows < r;row++){
   for (int cell = 1; cell < c;cell++){
       int cellvalue = (int)sheet.getRow(row).getCell(cell).getNumericCellValue()
       //do some simple math op with that cell or several cells

   }
}
FileInputStream fis=null;
fis=新文件输入流(“D:/verylargefile.xlsx”);
XSSF工作簿=新XSSF工作簿(fis);
XSSFSheet sheet=workbook.getSheetAt(0);
int r=sheet.getPhysicalNumberOfRows();
int c=sheet.getRow(1.getLastCellNum();
对于(int row=1;rows
所以我需要做大量的简单的数学运算(例如每行平均5个单元格或类似的运算),而且速度非常快,一次只需要一小部分非常大的xlsx文件。通过上面的代码,我得到了10mb xlsx文件和专用于java虚拟机的1gb ram(-Xms1000M)的堆空间错误


谢谢

我甚至不需要它是xlss文件,因为我只从中获取整数,所以如果我可以将large.xlsx保存为csv或txt并使用它,如果有人可以使用csv readig命令编写此代码。这取决于如果您计划使用多个单元执行某些操作,您将在注释部分中计算什么堆空间错误?加载文件时或处理数据时?使用这种方法?