Я работаю над библиотекой ПОИ.Я хочу вычислить некоторую ячейку формулы, которая содержит более 255 столбцов.
XSSFRow row219 = sheet.createRow(219);
XSSFCell vv0 = (XSSFCell) row219.createCell(255);
vv0.setCellValue(40);
XSSFCell vv = (XSSFCell) row219.createCell(256);
vv.setCellValue(70);
XSSFCell cell = sheet.createRow(1).createCell(1);
cell.setCellFormula("OFFSET(IV220,0,1)");
XSSFFormulaEvaluator evaluator =
(XSSFFormulaEvaluator) workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateInCell(cell);
, но она дает результат # REF! в ячейке.но если я использую приведенный ниже код, я получаю ожидаемый результат
XSSFRow row219 = sheet.createRow(219);
XSSFCell vv0 = (XSSFCell) row219.createCell(255);
vv0.setCellValue(40);
XSSFCell vv = (XSSFCell) row219.createCell(256);
vv.setCellValue(70);
XSSFCell cell = sheet.createRow(1).createCell(1);
cell.setCellFormula("OFFSET(IV220,0,1)");
XSSFFormulaEvaluator evaluator =
(XSSFFormulaEvaluator) workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluate(cell);
Затем я получаю ожидаемое значение 70.
Я хочу знать разницу между valuator.evaluateInCell (cell); и valuator.evaluate (cell); , хотя он использует тот же абстрактный класс внутри библиотеки poi
protected abstract CellValue evaluateFormulaCellValue(Cell var1);
и ту же реализацию этого абстрактного класса BaseXSSFFormulaEvaluator
, нопочему результат отличается?
Примечание: я использую библиотеку poi 3.17