Въведение

Класът Cell е основната единица в Aspose.Cells FOSS за Java. Той съхранява типизирани стойности, разкрива техния тип по време на изпълнение чрез изброението CellValueType, запазва формулни низове за оценка от Excel и предоставя унифицирано текстово представяне чрез getStringValue(). Тази публикация разглежда подробно основния API за клетки с проверени примери.

Всички примерни кодове по-долу използват Maven зависимостта:

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

Core Cell API

Съхраняване на типизирани стойности с putValue()

Cell.putValue() приема шест Java типа: String, int, double, boolean, LocalDateTime и Object. Всяко извикване задава вътрешната стойност на клетката и определя CellValueType, върнат от 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");
}

Празните клетки връщат CellValueType.BLANK от getType(). Целочислените стойности, съхранени с putValue(int), преминават през XLSX сериализация без да получат десетична точка — getStringValue() връща "123", а не "123.0".

Преглеждане на стойностите по време на изпълнение

cell.getValue() връща суровата съхранена стойност като Object. cell.getStringValue() връща представяне на низ, независимо от локала, подходящо за последваща обработка или показване. Разклоняването върху CellValueType е препоръчителният модел за типово безопасно извличане на стойност:

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

Съхранение на формули

Низовете на формулите се съхраняват с cell.setFormula(). Съхраненият низ на формулата започва
с = и следва стандартния синтаксис на формули в Excel. Методът getType() връща
CellValueType.FORMULA за клетки с формули. Aspose.Cells FOSS for Java съхранява и препредава формули в XLSX; формулата се преизчислява от 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 Точност при обратен процес

Всички типизирани стойности се запазват при сериализация и презареждане на XLSX. Зареждането на
съществуващ файл .xlsx използва new Workbook(path) или new Workbook(path, options) с
LoadOptions за активиране на режим за поправка. След презареждане, getType() и getStringValue()
връщат същите стойности, както при запис.

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

Поддържани формати

ФорматРазширениеЧетенеЗапис
Excel Open XML.xlsx

Отворен код и лицензиране

Aspose.Cells FOSS for Java е публикуван под лиценз MIT. Вие сте свободни да го използвате, модифицирате и разпространявате в лични, с отворен код и комерсиални проекти без ограничения. Изходният код е достъпен на github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Започване