Wieder ist es Apache POI, eine Fortsetzung des letzten Males. https://qiita.com/Mk-4000/items/5d52b4b92ed5f8bf23f5
Das letzte Mal, als ich schrieb, wie man jeden Zelltyp bekommt, ** CellType.FORMULA ** Methode zum Zeitpunkt von getCellFormula() Dann fand ich heraus, dass die Formel selbst in der Zelle als String-Typ erhalten werden kann. Was ist, wenn Sie das Ergebnis dieser Formel wollen? Was tun, wenn Sie sagen?
Ich suchte nach etwas, das ich auf verschiedene Weise nicht tun konnte, und verwies auf diesen Artikel. http://shin-kawara.seesaa.net/article/159878953.html
** Formel Evaluator Schnittstelle ** Da war etwas namens.
Dies wertet die Formelzelle aus. Machen Sie es zu einem Wert. Kurz gesagt, es hilft sehr, den berechneten Wert zu erhalten.
Ebenfalls, ** CreationHelper-Schnittstelle ** Es scheint auch zu verwenden. Dies ist ein Objekt, das die Instanziierung konkreter Klassen übernimmt. Ich denke, es ist dasjenige, das verschiedene POI-Objekte erstellt.
Bereiten Sie diese beiden vor,
Es ist wie ein Fluss.
FormulaEvaluator.evaluateInCell(cell) Eine Methode, die eine Zelle in das Argument einfügt, die Formel der im Argument enthaltenen Zelle auswertet und berechnet und das Ergebnis zurückgibt
Wenn Sie dies verwenden, können Sie den berechneten Wert auch mit einer Formel erhalten.
SamplePOI3.java
private static String getCellStringValue(Cell cell) {
String retStr;
CellType cellType = cell.getCellType();
switch (cellType) {
case STRING:
retStr = cell.getStringCellValue();
break;
case NUMERIC:
retStr = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
retStr = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
//Funktionsergebnis abrufen
Workbook wb = cell.getSheet().getWorkbook();
CreationHelper ch = wb.getCreationHelper();
FormulaEvaluator fe = ch.createFormulaEvaluator();
retStr = String.valueOf(getCellStringValue(fe.evaluateInCell(cell)));
break;
case ERROR:
retStr = String.valueOf(cell.getErrorCellValue());
break;
default:
retStr = "";
break;
}
return retStr;
}
samplePOI3.result
1.0
2.0
3.0
Recommended Posts