У меня есть несколько формул в ячейках моего листа, и я хочу оценить их после того, как я вставлю некоторые значения.Пример:
Моя формула =SUM(B1,B2)
До вставки значений B1
значение было 1
, B2
значение было 3
, а результат формулы был 4
После вставки значений теперь B1 имеет значение 5
, а B2 имеет значение 2
, но формула по-прежнему выдает 4
, как я могу вычислить / запустить его для вычисления?
Естественно, после того, как я нажал кнопку возврата в ячейке формулы, вычисляется новое значение 7
, есть ли способ вызвать это без ручного взаимодействия?
Я использую Excel 2007, поэтому XSSFWorkbook
РЕДАКТИРОВАТЬ / ОБНОВИТЬ:
Я использовал решение Gabors, прежде чем он опубликовал его, но я использую его в качестве ссылки, вот что происходит:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.ss.formula.WorkbookEvaluator.<init>(Lorg/apache/poi/ss/formula/EvaluationWorkbook;Lorg/apache/poi/ss/formula/IStabilityClassifier;Lorg/apache/poi/hssf/record/formula/udf/UDFFinder;)V
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:64)
at org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator.<init>(XSSFFormulaEvaluator.java:51)
...............
...............
Вот часть соответствующего кода:
public XSSFFormulaEvaluator getEvaluator(){
if(evaluator == null){
evaluator = new XSSFFormulaEvaluator(wb);
}
return evaluator;
}
фактически вызывает оценщик:
//where index is int, and mycell is int
row = (XSSFRow) sheet.getRow(index);
cell = row.createCell(mycell);
getEvaluator().evaluateFormulaCell(cell);
Я ищу кого-то, кто использовал это и был успешным, а не тех, ктоРешение Google, не пытаясь его использовать, я, по крайней мере, много гуглял.
За Гагравару меня есть 2 POI на пути к классам:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.7</version>
</dependency>
Мне нужна версия 3.7 для рабочих книг XSSF и т. д.
РЕШЕНИЕ:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8-beta2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8-beta2</version>
</dependency>