Úvod
Třída Cell je základní jednotkou v Aspose.Cells FOSS pro Javu. Ukládá typované hodnoty, zpřístupňuje jejich typ za běhu prostřednictvím výčtu CellValueType, uchovává řetězce vzorců pro vyhodnocení v Excelu a poskytuje jednotnou řetězcovou reprezentaci pomocí getStringValue(). Tento příspěvek podrobně zkoumá základní API buňky s ověřenými příklady.
Všechny níže uvedené příklady kódu používají Maven závislost:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Core Cell API
Ukládání typovaných hodnot pomocí putValue()
Cell.putValue() přijímá šest typů Java: String, int, double, boolean,
LocalDateTime a Object. Každé volání nastaví vnitřní hodnotu buňky a určuje
CellValueType vrácený 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");
}
Prázdné buňky vracejí CellValueType.BLANK z getType(). Celá čísla uložená pomocí putValue(int) projdou round-tripem přes serializaci XLSX bez získání desetinné tečky — getStringValue() vrací "123", ne "123.0".
Kontrola hodnot během běhu
cell.getValue() vrací surovou uloženou hodnotu jako Object. cell.getStringValue() vrací nezávislou na locale řetězcovou reprezentaci vhodnou pro následné zpracování nebo zobrazení. Větvení na CellValueType je doporučený vzor pro typově bezpečné získávání hodnot:
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");
}
Úložiště vzorců
Řetězce vzorců jsou uloženy pomocí cell.setFormula(). Uložený řetězec vzorce začíná = a dodržuje standardní syntaxi vzorců Excelu. Metoda getType() vrací CellValueType.FORMULA pro buňky s vzorcem. Aspose.Cells FOSS pro Java ukládá a přenáší vzorce v XLSX; vzorec je po otevření přepočítán v Excelu.
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 Věrnost při zpětném převodu
Všechny typované hodnoty jsou zachovány při serializaci a načtení XLSX.
Loading an
existujícího .xlsx souboru používá new Workbook(path) nebo new Workbook(path, options) sLoadOptions pro povolení režimu opravy. Po načtení getType() a getStringValue()
vrací stejné hodnoty jako při zápisu.
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");
}
Podporované formáty
| Formát | Přípona | Číst | Zapisovat |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Open Source a licencování
Aspose.Cells FOSS for Java je vydán pod licencí MIT. Můžete jej volně používat, upravit a distribuovat v osobních, open-source a komerčních projektech bez omezení. Zdrojový kód je k dispozici na github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.