Giới thiệu

Lớp Cell là đơn vị nền tảng trong Aspose.Cells FOSS cho Java. Nó lưu trữ các giá trị có kiểu, tiết lộ kiểu chạy thời gian của chúng thông qua enum CellValueType, lưu lại các chuỗi công thức để Excel đánh giá, và cung cấp một biểu diễn chuỗi đồng nhất thông qua getStringValue(). Bài viết này xem xét chi tiết API ô cốt lõi với các ví dụ đã được xác minh.

Tất cả các ví dụ mã dưới đây sử dụng phụ thuộc Maven:

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

Core Cell API

Lưu trữ các giá trị có kiểu bằng putValue()

Cell.putValue() chấp nhận sáu kiểu Java: String, int, double, boolean, LocalDateTime, và Object. Mỗi lần gọi sẽ đặt giá trị nội bộ của ô và xác định CellValueType được trả về bởi 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");
}

Các ô trống trả về CellValueType.BLANK từ getType(). Các giá trị nguyên được lưu với putValue(int) vòng qua quá trình tuần tự hoá XLSX mà không có dấu thập phân — getStringValue() trả về "123" chứ không phải "123.0".

Kiểm tra các giá trị tại thời gian chạy

cell.getValue() trả về giá trị lưu trữ thô dưới dạng Object. cell.getStringValue()
trả về một biểu diễn chuỗi không phụ thuộc vào ngôn ngữ, phù hợp cho việc xử lý downstream
hoặc hiển thị. Việc phân nhánh dựa trên CellValueType là mẫu được khuyến nghị để
trích xuất giá trị an toàn kiểu:

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

Lưu trữ công thức

Chuỗi công thức được lưu trữ với cell.setFormula(). Chuỗi công thức đã lưu bắt đầu với = và tuân theo cú pháp công thức chuẩn của Excel. Phương thức getType() trả về CellValueType.FORMULA cho các ô công thức. Aspose.Cells FOSS for Java lưu trữ và đưa công thức qua lại trong XLSX; công thức sẽ được Excel tính lại khi mở.

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 Độ trung thực vòng quay

Tất cả các giá trị đã nhập được giữ nguyên qua quá trình tuần tự hoá XLSX và tải lại. Tải một tệp .xlsx hiện có sử dụng new Workbook(path) hoặc new Workbook(path, options) cùng với LoadOptions để bật chế độ sửa chữa. Sau khi tải lại, getType()getStringValue() trả về các giá trị giống như thời điểm ghi.

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

Định dạng được hỗ trợ

Định dạngPhần mở rộngĐọcGhi
Excel Open XML.xlsx

Mã nguồn mở & Cấp phép

Aspose.Cells FOSS for Java được phát hành dưới giấy phép MIT. Bạn có thể tự do sử dụng, sửa đổi và phân phối nó trong các dự án cá nhân, mã nguồn mở và thương mại mà không bị hạn chế. Mã nguồn có sẵn tại github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.


Bắt đầu