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() zwraca
CellValueType.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

FormatRozszerzenieOdczytZapis
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.


Rozpoczęcie