Wprowadzenie
Klasa Cell jest podstawową jednostką w Aspose.Cells FOSS dla Javy. Przechowuje wartości typowane, udostępnia ich typ w czasie wykonywania poprzez wyliczenie CellValueType, zachowuje ciągi formuł do oceny przez Excel oraz zapewnia jednolitą reprezentację tekstową za pomocą getStringValue(). Ten wpis szczegółowo analizuje podstawowe API komórek wraz ze zweryfikowanymi przykładami.
Wszystkie przykłady kodu poniżej używają zależności Maven:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
Core Cell API
Przechowywanie typowanych wartości przy użyciu putValue()
Cell.putValue() akceptuje sześć typów Java: String, int, double, boolean,
LocalDateTime i Object. Każde wywołanie ustawia wewnętrzną wartość komórki i określa
CellValueType zwracany przez 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");
}
Puste komórki zwracają CellValueType.BLANK z getType(). Wartości całkowite przechowywane przy użyciu
putValue(int) przechodzą cykl round‑trip przez serializację XLSX bez uzyskania miejsca dziesiętnego — getStringValue() zwraca "123" nie "123.0".
Inspekcja wartości w czasie wykonywania
cell.getValue() zwraca surową przechowywaną wartość jako Object. cell.getStringValue()
zwraca niezależną od ustawień regionalnych reprezentację łańcucha znaków odpowiednią do dalszego przetwarzania
lub wyświetlania. Rozgałęzianie na CellValueType jest zalecanym wzorcem dla wyodrębniania wartości w sposób typowo bezpieczny:
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");
}
Przechowywanie formuł
Łańcuchy formuł są przechowywane przy użyciu cell.setFormula(). Przechowywany łańcuch formuły zaczyna się
z = i stosuje standardową składnię formuł Excel. Metoda getType() zwracaCellValueType.FORMULA dla komórek z formułami. Aspose.Cells FOSS for Java przechowuje i
przesyła formuły w formacie XLSX; formuła jest ponownie obliczana przez Excel przy otwarciu.
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 Wierność przy konwersji dwukierunkowej
Wszystkie wartości typowane są zachowywane podczas serializacji i ponownego wczytywania XLSX. Ładowanie istniejącego
.xlsx pliku używa new Workbook(path) lub new Workbook(path, options) z
LoadOptions, aby włączyć tryb naprawy. Po ponownym wczytaniu, getType() i getStringValue()
zwracają te same wartości co w czasie zapisu.
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");
}
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
Open Source i licencjonowanie
Aspose.Cells FOSS for Java jest udostępniony na licencji MIT. Masz swobodę używać, modyfikować i rozpowszechniać go w projektach osobistych, open‑source i komercyjnych bez ograniczeń. Kod źródłowy jest dostępny pod adresem github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.