Úvod

Trieda Cell je základnou jednotkou v Aspose.Cells FOSS pre Java. Ukladá typované hodnoty, odhaľuje ich typ za behu prostredníctvom enumu CellValueType, uchováva reťazce vzorcov pre Excel na vyhodnotenie a poskytuje jednotnú textovú reprezentáciu prostredníctvom getStringValue(). Tento príspevok podrobne skúma jadrové API buniek s overenými príkladmi.

Všetky príklady kódu nižšie používajú Maven závislosť:

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>cells-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Core Cell API

Ukladanie typovaných hodnôt pomocou putValue()

Cell.putValue() akceptuje šesť typov Java: String, int, double, boolean, LocalDateTime a Object. Každé volanie nastaví internú hodnotu bunky a určuje CellValueType vrátený 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ázdne bunky vracajú CellValueType.BLANK z getType(). Celé čísla uložené pomocou putValue(int) prechádzajú cez XLSX serializáciu a späť bez pridania desatinnej čiarky — getStringValue() vracia "123", nie "123.0".

Kontrola hodnôt za behu

cell.getValue() vracia surovú uloženú hodnotu ako Object. cell.getStringValue()
vracia nezávislú na locale reťazcovú reprezentáciu vhodnú pre následné spracovanie
alebo zobrazenie. Vetvenie na CellValueType je odporúčaný vzor pre typovo bezpečné
získavanie hodnoty:

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");
}

Ukladanie vzorca

Reťazce vzorcov sú uložené pomocou cell.setFormula(). Uložený reťazec vzorca začína s = a nasleduje štandardnú syntax vzorcov Excelu. Metóda getType() vracia CellValueType.FORMULA pre bunky s vzorcom. Aspose.Cells FOSS pre Java ukladá a zachováva vzorce v XLSX; vzorec je po otvorení prepočítaný programom Excel.

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 Vernosť pri obojsmernom prechode

Všetky typované hodnoty sú zachované pri serializácii a opätovnom načítaní XLSX. Načítanie
existujúceho .xlsx súboru používa new Workbook(path) alebo new Workbook(path, options) s
LoadOptions na povolenie režimu opravy. Po opätovnom načítaní getType() a getStringValue()
vrátia rovnaké hodnoty ako v čase 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átPríponaČítaťZapísať
Excel Open XML.xlsx

Open Source & Licencovanie

Aspose.Cells FOSS for Java je vydaný pod licenciou MIT. Môžete ho voľne používať, modifikovať a distribuovať v osobných, open-source a komerčných projektoch bez obmedzení. Zdrojový kód je dostupný na github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Začíname