0
6 개의 열과 50k 행의 시트가 있습니다. 한 번만 n 번 복사하고 싶습니다. 은 지금 나는이 같은 일을 오전 :Apache POI 수식이있는 행 복사 n 번
for (int i=0; i<=excel_max_row; i++) {
row = sheet3.createRow((short) i);
cell = row.createCell(0);
cell.setCellFormula("IFERROR(LOOKUP(Template!A"+(i+2)+",'Dropdown-Values'!A:A,'Dropdown-Values'!B:B),\"\")");
cell = row.createCell(1);
cell.setCellFormula("IF(Template!B"+(i+2)+"=0,\"\",Template!B"+(i+2)+")");
cell = row.createCell(2);
cell.setCellFormula("IFERROR(LOOKUP(Template!C"+(i+2)+",'Dropdown-Values'!C:C,'Dropdown-Values'!D:D),\"\")");
cell = row.createCell(3);
cell.setCellFormula("IFERROR(LOOKUP(Template!D"+(i+2)+",'Dropdown-Values'!E:E,'Dropdown-Values'!F:F),\"\")");
cell = row.createCell(4);
cell.setCellFormula("IFERROR(LOOKUP(Template!E"+(i+2)+",'Dropdown-Values'!E:E,'Dropdown-Values'!F:F),\"\")");
cell = row.createCell(5);
cell.setCellFormula("IF(Template!F"+(i+2)+"=0,\"\",Template!F"+(i+2)+")");
}
XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
그것은 작동하지만 excel_max_row
는 50K까지 할 수 있기 때문에 매우 느립니다. 모든 포럼과 함께 행을 n 번 빠르게 복사 할 수있는 방법이 있습니까?
덕분에 많은
를? – XtremeBaumer
나는'evaluateAllFormulaCells'이 느려지는 주된 원인이라고 생각합니다. 대안에 대한 [공식 재 계산] (https://poi.apache.org/spreadsheet/eval.html#Recalculation+of+Formulas)을 읽으십시오. –
200 행의 경우 221288ms, 예는 문제입니다. – ayasha