DEV Community

SirOnly
SirOnly

Posted on

[Java] Einfügen oder Lesen von Formeln und Funktionen in Excel

Formeln und Funktionen sind zwei Berechnungswerkzeuge in Excel, mit denen Daten einfach und effizient verarbeitet und analysiert werden können. Eine Formel ist eine Berechnungsanweisung, während eine Funktion eine vordefinierte Formel ist. Benutzer können Konstanten, Operatoren, Werte, die aus anderen Zellen referenziert werden, sowie Funktionen verwenden, um Formeln zu erstellen oder direkt auf Funktionen in einer Zelle zu verweisen und Berechnungen durchzuführen. In diesem Artikel werden wir Ihnen zeigen, wie Sie mithilfe von Free Spire.XLS for Java Excel-Tabellenkalkulationen erstellen, Formeln und Funktionen einfügen und lesen können.

  • Einfügen von Formeln und Funktionen
  • Lesen von Formeln und Funktionen

【Hinzufügen von Abhängigkeiten】

Für diese Methode benötigen Sie das kostenlose Free Spire.XLS for Java. Importieren Sie zuerst die JAR-Datei.

1. Maven

Wenn Sie Maven verwenden, können Sie die JAR-Datei einfach in Ihre Anwendung importieren, indem Sie den folgenden Code zu Ihrer pom.xml-Datei hinzufügen:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>
Enter fullscreen mode Exit fullscreen mode

2. Herunterladen der JAR-Datei von der offiziellen Website

Laden Sie zuerst das ZIP-Archiv von der offiziellen Website von Free Spire.XLS for Java herunter. Entpacken Sie das ZIP-Archiv und importieren Sie die Spire.Xls.jar-Datei aus dem lib-Ordner als Abhängigkeit in Ihr Projekt.

Einfügen von Formeln und Funktionen

Der detaillierte Prozess zum Einfügen von Formeln und Funktionen in ein Arbeitsblatt mit der Methode Worksheet.getCellRange().setFormula() von Free Spire.XLS for Java lautet wie folgt:

  • Erstellen Sie ein Objekt der Klasse Workbook.
  • Verwenden Sie die Methode Workbook.getWorksheets().get(), um das erste Arbeitsblatt abzurufen.
  • Schreiben Sie Daten in die Zellen und legen Sie deren Formatierung fest.
  • Verwenden Sie die Methode Worksheet.getCellRange().setFormula(), um Formeln und Funktionen in bestimmte Zellen einzufügen.
  • Verwenden Sie die Methode Workbook.saveToFile(), um die Arbeitsmappe zu speichern.

Java-Code

import com.spire.xls.*;

public class InsertFormulas {
    public static void main(String[] args) {

        // Erstellen Sie ein Workbook-Objekt
        Workbook workbook = new Workbook();

        // Holen Sie sich das erste Arbeitsblatt
        Worksheet sheet = workbook.getWorksheets().get(0);

        // Deklarieren Sie zwei Variablen: currentRow und currentFormula
        int currentRow = 1;
        String currentFormula = null;

        // Setzen Sie die Spaltenbreite
        sheet.setColumnWidth(1, 32);
        sheet.setColumnWidth(2, 16);

        // Schreiben Sie Daten in Zellen
        sheet.getCellRange(currentRow, 1).setValue("Testdaten");
        sheet.getCellRange(currentRow, 2).setNumberValue(1);
        sheet.getCellRange(currentRow, 3).setNumberValue(2);
        sheet.getCellRange(currentRow, 4).setNumberValue(3);
        sheet.getCellRange(currentRow, 5).setNumberValue(4);
        sheet.getCellRange(currentRow, 6).setNumberValue(5);

        // Schreiben Sie Text in Zellen
        currentRow += 2;
        sheet.getCellRange(currentRow, 1).setValue("Formel");
        sheet.getCellRange(currentRow, 2).setValue("Ergebnis");

        // Setzen Sie das Zellformat
        CellRange range = sheet.getCellRange(currentRow, 1, currentRow, 2);
        range.getStyle().getFont().setBold(true);
        range.getStyle().setKnownColor(ExcelColors.LightGreen1);
        range.getStyle().setFillPattern(ExcelPatternType.Solid);
        range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);

        // Arithmetische Operationen
        currentFormula = "=1/2+3*4";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // Datumsfunktionen
        currentFormula = "=TODAY()";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);
        sheet.getCellRange(currentRow, 2).getStyle().setNumberFormat("YYYY/MM/DD");

        // Zeitfunktionen
        currentFormula = "=NOW()";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);
        sheet.getCellRange(currentRow, 2).getStyle().setNumberFormat("H:MM AM/PM");

        // IF-Funktion
        currentFormula = "=IF(B1=5,\"Ja\",\"Nein\")";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // PI-Funktion
        currentFormula = "=PI()";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // Trigonometrische Funktionen
        currentFormula = "=SIN(PI()/6)";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // Zählfunktionen
        currentFormula = "=Count(B1:F1)";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // MAX-Funktion
        currentFormula = "=MAX(B1:F1)";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // Durchschnittsfunktion
        currentFormula = "=AVERAGE(B1:F1)";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // SUM-Funktion
        currentFormula = "=SUM(B1:F1)";
        sheet.getCellRange(++currentRow, 1).setText("'" + currentFormula);
        sheet.getCellRange(currentRow, 2).setFormula(currentFormula);

        // Speichern Sie das Workbook
        workbook.saveToFile("FormelnEinfügen.xlsx", FileFormat.Version2013);
    }
}
Enter fullscreen mode Exit fullscreen mode

Lesen von Formeln und Funktionen

Mit der Methode CellRange.hasFormula() können Sie überprüfen, ob eine Zelle eine Formel enthält, und mit der Methode CellRange.getFormula() können Sie die Formel abrufen. Hier sind die detaillierten Schritte:

  • Erstellen Sie ein Objekt der Klasse Workbook.
  • Verwenden Sie die Methode Workbook.loadFromFile(), um eine Excel-Arbeitsmappe zu laden.
  • Verwenden Sie die Methode Workbook.getWorksheets().get(), um das Arbeitsblatt abzurufen.
  • Iterieren Sie über die Zellen im Arbeitsblatt.
  • Verwenden Sie die Methode CellRange.hasFormula(), um zu überprüfen, ob eine Zelle eine Formel enthält. Wenn eine Formel enthalten ist, verwenden Sie die Methode CellRange.getFormula(), um die Formel abzurufen und auszugeben.
  • Verwenden Sie die Methode Workbook.saveToFile(), um die Arbeitsmappe zu speichern.

Java-Code

import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class readFormulas {

    public static void main(String[] args) {

        // Erstellen eines Workbook-Objekts
        Workbook workbook = new Workbook();

        // Excel-Datei laden
        workbook.loadFromFile("Formeln einfügen.xlsx");

        // Das erste Arbeitsblatt abrufen
        Worksheet sheet = workbook.getWorksheets().get(0);

        // Schleife über die Zellen in B1:B13
        for (Object cell: sheet.getCellRange("B1:B13")) {
            CellRange cellRange = (CellRange)cell;

            // Überprüfen, ob die Zelle eine Formel enthält
            if (cellRange.hasFormula()) {

                // Formel ausgeben
                String certainCell = String.format("In Zelle [%d, %d] befindet sich eine Formel.", cellRange.getRow(), cellRange.getColumn());
                System.out.println(certainCell + cellRange.getFormula());
            }
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Formeln und Funktionen eignen sich gut zur Verarbeitung von Daten in Excel. Excel bietet auch andere Tools wie Diagramme und Grafiken, die bei der Datenverarbeitung hilfreich sind. Wenn Sie mehr über die Verarbeitung von Excel-Daten erfahren möchten, schauen Sie sich das Spire.XLS for Java Tutorial an.

Top comments (0)