itext匯出報表防止記憶體溢位
阿新 • • 發佈:2019-01-25
int _MAX_ROWS = 1000;//最大行數,之後清理
int row_count = 0;//初始值
if (++row_count % _MAX_ROWS == 0) {
System.out.println("row_count % _MAX_ROWS="+ row_count % _MAX_ROWS);
// add table to Document
document.add(datatable);
// delete _MAX_ROWS from table to free memory
datatable.deleteBodyRows();
// let iText manage when table header written
//datatable.setSkipFirstHeader(true);
}
int fregmentSize = 1000;// 釋放記憶體的行號
int k = 0;
for (int i = 0, h = bodys.size(); i < h; i++) {
if (i != 0 && i % fregmentSize == fregmentSize - 1) {
System.out.println("第[ " + (i + 1) + " ]行進行記憶體釋放 " + ((k++) + 1) + " th");
document.add(datatable);
datatable.deleteBodyRows();
datatable.setSkipFirstHeader(true);
}
//.... 表格處理
}
int row_count = 0;//初始值
if (++row_count % _MAX_ROWS == 0) {
System.out.println("row_count % _MAX_ROWS="+ row_count % _MAX_ROWS);
// add table to Document
document.add(datatable);
// delete _MAX_ROWS from table to free memory
datatable.deleteBodyRows();
// let iText manage when table header written
//datatable.setSkipFirstHeader(true);
}
int fregmentSize = 1000;// 釋放記憶體的行號
int k = 0;
for (int i = 0, h = bodys.size(); i < h; i++) {
if (i != 0 && i % fregmentSize == fregmentSize - 1) {
System.out.println("第[ " + (i + 1) + " ]行進行記憶體釋放 " + ((k++) + 1) + " th");
document.add(datatable);
datatable.deleteBodyRows();
datatable.setSkipFirstHeader(true);
}
//.... 表格處理
}