оценить (ячейка) и разницу в оценкеInCell (ячейка) в библиотеке ПОИ? - PullRequest
0 голосов
/ 29 ноября 2018

Я работаю над библиотекой ПОИ.Я хочу вычислить некоторую ячейку формулы, которая содержит более 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

...