Importieren Sie Excel-Daten mit Java 3

Wieder ist es Apache POI, eine Fortsetzung des letzten Males. https://qiita.com/Mk-4000/items/5d52b4b92ed5f8bf23f5

Inhalt dieser Zeit

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?

Was speziell zu tun

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,

  1. Bereiten Sie CreationHelper aus dem Arbeitsmappenobjekt vor (getCreationHelper ())
  2. Erstellen Sie FormulaEvaluator über CreationHelper (createFormulaEvaluator ()).
  3. Berechnen Sie die Zielzelle mit FormulaEvaluator.evaluateInCell ()

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.

Implementierungsergebnis

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;
    }

image.png

samplePOI3.result


1.0
2.0
3.0

Recommended Posts

Importieren Sie Excel-Daten mit Java 2
Importieren Sie Excel-Daten mit Java 3
Importieren Sie Excel-Daten mit Java
Java-Zusatz Excel-Datenüberprüfung
Erstellen Sie Binärdaten variabler Länge in Java
Partisierung in Java
Änderungen in Java 11
Janken in Java
Java erstellt ein Kreisdiagramm in Excel
Löschen Sie leere Zeilen / Spalten in Java Excel
Umfangsrate in Java
FizzBuzz in Java
Hinzufügen, Lesen und Löschen von Excel-Kommentaren mit Java
Organisiertes Memo im Kopf (Java - Datentyp)
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Kommentare in der Java-Quelle
[Java] Datentyp ①-Basistyp
Azure funktioniert in Java
Formatieren Sie XML in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
Was ist neu in Java 8?
Verwenden Sie PreparedStatement in Java
Was ist neu in Java 9,10,11
Parallele Ausführung in Java
Java-Grunddatentypen
Vektorisieren und bildgeben Sie handgeschriebene numerische MNIST-Bilddaten mit Java
So erstellen Sie einen Daten-URI (base64) in Java
Versuchen Sie es mit RocksDB mit Java
Lesen Sie Binärdateien in Java 1
Vermeiden Sie den Fehler, den Yuma in Java gemacht hat
Java-Lernnotiz (Datentyp)
Holen Sie sich EXIF-Informationen in Java
[Neta] Sleep Sort in Java
Holen Sie sich Wettervorhersagen von Watson Weather Company Data mit einfachem Java
Bearbeiten von ini in Java: ini4j
Java-Geschichte in dieser Welt