向已存在的excel文件中增加数据,出现
内存溢出File excFile = new File(exportFileName);
if (excFile.exists()){
try {
Workbook newWorkBook = Workbook.getWorkbook(excFile);
this.writableWorkbook = Workbook.createWorkbook(excFile,newWorkBook);
} catch (BiffException e) {
throw new
IOException(e.getMessage());
}
}else{
this.outputStream = new FileOutputStream(exportFileName);
this.writableWorkbook = Workbook.createWorkbook(this.outputStream);
}
if(sheetName == null) {
this.writableSheet = writableWorkbook.createSheet( "Sheet1 ", index);
}
else {
this.writableSheet = writableWorkbook.createSheet(sheetName, index);
}
向一个已存在有3万条记录的excel中增加数据时,在执行到this.writableWorkbook = Workbook.createWorkbook(this.outputStream);这句时出现内存溢出;我要在这个excel文件中开个新的sheet,再增加3万条记录
------解决方案--------------------我是加大JVM堆栈大小能实现20000条……不知道还有别的方法没
------解决方案--------------------你试着调大java的stack size的大小试试,具体的方法如下
设置一下stack size的大小 java 后跟参数即可设置,具体参数如下:
-Xms size set initial Java heap size
-Xmx size set maximum Java heap size
-Xss size set java thread stack size
------解决方案--------------------能不能分批的进行存储啊,每10000条写一次excel文件
------解决方案--------------------这个问题,似乎就楼上说的办法好。。
一次处理15000左右的数据,分多次处理把,,。。