Introduktion
Klassen Cell er den grundlæggende enhed i Aspose.Cells FOSS for Java. Den gemmer typede værdier, eksponerer deres køretidstype gennem CellValueType-enum’en, bevarer formelstrenge, som Excel kan evaluere, og leverer en ensartet strengrepræsentation via getStringValue(). Dette indlæg undersøger den centrale celle‑API i detaljer med verificerede eksempler.
Alle kodeeksempler nedenfor bruger Maven-afhængigheden:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Core Cell API
Lagring af typede værdier med putValue()
Cell.putValue() accepterer seks Java-typer: String, int, double, boolean,
LocalDateTime og Object. Hvert kald sætter cellens interne værdi og bestemmer
CellValueType returneret af cell.getType().
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");
}
Tomme celler returnerer CellValueType.BLANK fra getType(). Heltalsværdier gemt medputValue(int) round‑trip gennem XLSX‑serialisering uden at få et decimalpunkt —getStringValue() returnerer "123", ikke "123.0".
Inspektion af værdier ved kørselstid
cell.getValue() returnerer den rå lagrede værdi som Object. cell.getStringValue() returnerer en lokal‑uafhængig strengrepræsentation, der er egnet til efterfølgende behandling eller visning. At forgrene på CellValueType er det anbefalede mønster for typesikker værdihentning:
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");
}
Formelopbevaring
Formelstrenge gemmes med cell.setFormula(). Den gemte formelstreng begynder med = og følger standard Excel‑formelsyntaks. getType()‑metoden returnerer CellValueType.FORMULA for formelceller. Aspose.Cells FOSS for Java gemmer og round‑tripper formler i XLSX; formlen genberegnes af Excel ved åbning.
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 Rundrejse‑nøjagtighed
Alle typede værdier bevares på tværs af XLSX-serialisering og genindlæsning. Indlæsning af en
eksisterende .xlsx-fil bruger new Workbook(path) eller new Workbook(path, options) med
LoadOptions for at aktivere reparations-tilstand. Efter genindlæsning, getType() og getStringValue()
returnerer de samme værdier som på tidspunktet for skrivning.
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");
}
Understøttede formater
| Format | Udvidelse | Læs | Skriv |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Open Source & Licensering
Aspose.Cells FOSS for Java er udgivet under MIT-licensen. Du er fri til at bruge, modificere og distribuere den i personlige, open‑source og kommercielle projekter uden begrænsning. Kildekoden er tilgængelig på github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.