gpt4 book ai didi

java - JAVA写入超过5000行后Excel写入变慢

转载 作者:行者123 更新时间:2023-12-01 21:51:45 25 4
gpt4 key购买 nike

Excel 文件写入 5000 行后,Excel 写入速度会变慢。

谁能建议我如何加快写入 Excel 文件的速度?

我正在使用 selenium - java 从我的网站抓取数据

当我开始写代码时,写入速度很快,但1小时后就变慢了。 (CPU和RAM消耗正常。)

这是写入excel文件的代码。

public boolean setCellData(String sheetName,String colName,int rowNum, String data){
try{
fis = new FileInputStream(path);
workbook = new XSSFWorkbook(fis);

if(rowNum<=0)
return false;

int index = workbook.getSheetIndex(sheetName);
int colNum=-1;
if(index==-1)
return false;


sheet = workbook.getSheetAt(index);


row=sheet.getRow(0);
for(int i=0;i<row.getLastCellNum();i++){
//System.out.println(row.getCell(i).getStringCellValue().trim());
if(row.getCell(i).getStringCellValue().trim().equals(colName)) {
colNum=i;
break;
}
}
if(colNum==-1)
return false;

sheet.autoSizeColumn(colNum);
row = sheet.getRow(rowNum-1);
if (row == null)
row = sheet.createRow(rowNum-1);

cell = row.getCell(colNum);
if (cell == null)
cell = row.createCell(colNum);


cell.setCellValue(data);

fileOut = new FileOutputStream(path);

workbook.write(fileOut);

fileOut.close();

}
catch(Exception e){
e.printStackTrace();
return false;
}
return true;
}

最佳答案

让我们看看:

  • 将整个工作表加载到内存中
  • 更新一个单元格
  • 将整个工作表写回文件
  • 对下一行/单元格重复所有操作

现在为什么会这么慢?
因为读写文件很慢。

你应该:

  • 加载一次纸张
  • 更新所有需要更新的行/单元格
  • 将结果保存回文件

关于java - JAVA写入超过5000行后Excel写入变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com