Einleitung
Die Cell‑Klasse ist die grundlegende Einheit in Aspose.Cells FOSS für Java. Sie speichert typisierte Werte, gibt ihren Laufzeittyp über das CellValueType‑Enum preis, speichert Formelformeln, die Excel auswerten kann, und liefert eine einheitliche Zeichenkettenrepräsentation über getStringValue(). Dieser Beitrag untersucht die Kern‑Cell‑API im Detail mit verifizierten Beispielen.
Alle nachfolgenden Codebeispiele verwenden die Maven‑Abhängigkeit:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Core Cell API
Speichern typisierter Werte mit putValue()
Cell.putValue() akzeptiert sechs Java‑Typen: String, int, double, boolean,
LocalDateTime und Object. Jeder Aufruf setzt den internen Wert der Zelle und bestimmt
das CellValueType, das von cell.getType() zurückgegeben wird.
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
import java.time.LocalDateTime;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell a1 = sheet.getCells().get("A1");
a1.putValue("Revenue");
assert a1.getType() == CellValueType.STRING;
Cell b1 = sheet.getCells().get("B1");
b1.putValue(42500.75);
assert b1.getType() == CellValueType.NUMBER;
Cell c1 = sheet.getCells().get("C1");
c1.putValue(true);
assert c1.getType() == CellValueType.BOOLEAN;
Cell d1 = sheet.getCells().get("D1");
d1.putValue(LocalDateTime.of(2026, 4, 27, 9, 0, 0));
assert d1.getType() == CellValueType.DATE_TIME;
workbook.save("typed.xlsx");
}
Leere Zellen geben CellValueType.BLANK von getType() zurück. Ganzzahlige Werte, die mit
putValue(int) gespeichert wurden, durchlaufen die XLSX‑Serialisierung im Round‑Trip, ohne einen Dezimalpunkt zu erhalten —
getStringValue() gibt "123" zurück, nicht "123.0".
Werte zur Laufzeit inspizieren
cell.getValue() gibt den rohen gespeicherten Wert als Object zurück. cell.getStringValue()
gibt eine lokalinabhängige String-Darstellung zurück, die für die nachgelagerte Verarbeitung
oder Anzeige geeignet ist. Das Verzweigen auf CellValueType ist das empfohlene Muster für typensichere
Wertextraktion:
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.getCells().get("A1").putValue("Hello");
sheet.getCells().get("B1").putValue(123);
sheet.getCells().get("C1").putValue(true);
sheet.getCells().get("D1").putValue(12.5d);
sheet.getCells().get("G1").setFormula("=B1*2");
Cell b1 = sheet.getCells().get("B1");
if (b1.getType() == CellValueType.NUMBER) {
System.out.println("Number: " + b1.getStringValue());
}
workbook.save("inspect.xlsx");
}
Formel‑Speicher
Formelzeichenketten werden mit cell.setFormula() gespeichert. Die gespeicherte Formelzeichenkette beginnt
mit = und folgt der standardmäßigen Excel-Formelsyntax. Die getType()-Methode gibt
CellValueType.FORMULA für Formatzellen zurück. Aspose.Cells FOSS für Java speichert und
überträgt Formeln in XLSX; die Formel wird von Excel beim Öffnen neu berechnet.
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell b1 = sheet.getCells().get("B1");
b1.putValue(100.0);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
assert c1.getType() == CellValueType.FORMULA;
workbook.save("formulas.xlsx");
}
XLSX Rundreise‑Treue
Alle typisierten Werte bleiben über die XLSX-Serialisierung und das erneute Laden erhalten.
Das Laden einer
bestehenden .xlsx-Datei verwendet new Workbook(path) oder new Workbook(path, options) mitLoadOptions, um den Reparaturmodus zu aktivieren. Nach dem erneuten Laden geben getType() und getStringValue()
die gleichen Werte zurück wie zum Zeitpunkt des Schreibens.
import com.aspose.cells_foss.LoadIssue;
import com.aspose.cells_foss.LoadOptions;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
LoadOptions options = new LoadOptions();
options.setStrictMode(false);
options.setTryRepairPackage(true);
options.setTryRepairXml(true);
try (Workbook workbook = new Workbook("input.xlsx", options)) {
if (workbook.getLoadDiagnostics().hasRepairs()) {
for (LoadIssue issue : workbook.getLoadDiagnostics().getIssues()) {
System.out.println(issue.getMessage());
}
}
Worksheet sheet = workbook.getWorksheets().get(0);
System.out.println(sheet.getCells().get("A1").getStringValue());
workbook.save("output.xlsx");
}
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Open Source & Lizenzierung
Aspose.Cells FOSS for Java wird unter der MIT-Lizenz veröffentlicht. Sie dürfen es verwenden, ändern und verbreiten in persönlichen, Open‑Source‑ und kommerziellen Projekten ohne Einschränkung. Der Quellcode ist verfügbar unter github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.