Bei der Berechnung und Verarbeitung von Daten in Excel-Tabellen verwenden wir häufig verschiedene Excel-Funktionsausdrücke, um die Arbeitseffizienz zu verbessern. In diesem Artikel werde ich Ihnen zeigen, wie Sie mit Free Spire.XLS für Java Formeln zu Excel-Zellen hinzufügen und die Formeln in den Zellen lesen können.
** JAR-Paket importieren ** ** Methode 1: ** Nach dem Herunterladen und Entpacken von Free Spire.XLS für Java im Ordner lib Importieren Sie das Spire.Xls.jar-Paket als Abhängigkeit in Ihre Java-Anwendung.
** Methode 2: ** Konfigurieren Sie die Datei pom.xml nach der Installation des JAR-Pakets direkt aus dem Maven-Repository wie folgt:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
** Formel hinzufügen **
import com.spire.xls.*;
public class InsertFormulas {
public static void main(String[] args) {
//Erstellen Sie ein Arbeitsmappenobjekt
Workbook workbook = new Workbook();
//Holen Sie sich das erste Arbeitsblatt
Worksheet sheet = workbook.getWorksheets().get(0);
//Deklarieren Sie zwei Variablen
int currentRow = 1;
String currentFormula = null;
//Stellen Sie die Breite der Spalte ein
sheet.setColumnWidth(1, 26);
sheet.setColumnWidth(2, 16);
//Schreiben Sie Testdaten in Zellen
sheet.getCellRange(currentRow,1).setValue("Testen Sie die Daten:");
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 in Text
currentRow += 2;
sheet.getCellRange(currentRow,1).setValue("Gleichung:") ; ;
sheet.getCellRange(currentRow,2).setValue("Ergebnis:");
//Formatieren Sie die Zelle
CellRange range = sheet.getCellRange(currentRow,1,currentRow,2);
range.getStyle().getFont().isBold(true);
range.getStyle().setKnownColor(ExcelColors.LightGreen1);
range.getStyle().setFillPattern(ExcelPatternType.Solid);
range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);
//Arithmetik
currentFormula = "=1/2+3*4";
sheet.getCellRange(++currentRow,1).setText(currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//Datumsfunktion
currentFormula = "=TODAY()";
sheet.getCellRange(++currentRow,1).setText(currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("YYYY/MM/DD");
//Zeitfunktion
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,\"Yes\",\"No\")";
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 Funktion
currentFormula = "=SIN(PI()/6)";
sheet.getCellRange(++currentRow,1).setText(currentFormula);
sheet.getCellRange(currentRow,2).setFormula(currentFormula);
//COUNT-Funktion
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);
//DURCHSCHNITTLICHE Funktion
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 Dokument
workbook.saveToFile("InsertFormulas.xlsx",FileFormat.Version2013);
}
}
** Formel lesen **
import com.spire.xls.*;
public class ReadFormulas {
public static void main(String[] args) {
//Erstellen Sie ein Arbeitsmappenobjekt
Workbook workbook = new Workbook();
//Laden Sie ein Excel-Dokument
workbook.loadFromFile("InsertFormulas.xlsx");
//Holen Sie sich das erste Arbeitsblatt
Worksheet sheet = workbook.getWorksheets().get(0);
//Zellen von B1 nach B13 durchlaufen
for (Object cell : sheet.getCellRange("B1:B13")
) {
CellRange cellRange = (CellRange) cell;
//Bestimmt, ob eine Zelle eine Formel enthält
if (cellRange.hasFormula()) {
//Drucken Sie Zellen und Formeln
String certainCell = String.format("Zelle[%d, %d]Enthält die Formel:", cellRange.getRow(), cellRange.getColumn());
System.out.println(certainCell + cellRange.getFormula());
}
}
}
}
Recommended Posts