บทนำ

Aspose.Cells FOSS for Java ให้ชุดความสามารถของสเปรดชีตที่ครอบคลุมสำหรับแอปพลิเคชัน Java 17 เปิดเผยภายใต้ใบอนุญาต MIT และจัดจำหน่ายเป็น Maven artifact มาตรฐาน ไลบรารีครอบคลุมทุกอย่างตั้งแต่การสร้างเวิร์กบุ๊กพื้นฐานจนถึงค่าของเซลล์ที่มีประเภท การจัดรูปแบบที่หลากหลาย การตรวจสอบความถูกต้องของข้อมูล และ AutoFilter — ทั้งหมดโดยไม่ต้องพึ่งพา Microsoft Office.

โพสต์นี้พาไปสำรวจพื้นที่คุณลักษณะหลักพร้อมตัวอย่างโค้ดที่มุ่งเน้นซึ่งดึงมาจาก
API ที่ได้รับการตรวจสอบแล้ว.
ชื่อคลาสและเมธอดทั้งหมดที่แสดงด้านล่างมีอยู่ในไลบรารีและพร้อมใช้งานในเวอร์ชัน 1.0.0.


คุณลักษณะสำคัญ

การจัดการ Workbook และ Worksheet

คลาส Workbook implements AutoCloseable ดังนั้นจึงทำงานร่วมกับ
Java try-with-resources pattern.
คุณสามารถสร้าง workbook ว่าง, โหลดไฟล์ที่มีอยู่
.xlsx, เปลี่ยนชื่อ worksheets, เพิ่มหรือเอา sheets ออก, ตั้งค่า active sheet, และ
ควบคุมการมองเห็นของ tab.

import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    sheet.setName("Q1 Report");
    workbook.getWorksheets().addSheet("Summary");
    workbook.save("report.xlsx");
}

ค่าที่พิมพ์ในเซลล์และสูตร

คลาส Cell รับค่าที่กำหนดประเภทผ่าน putValue() สำหรับ String, int, double, boolean, และ LocalDateTime. เมธอด getType() คืนค่า enum CellValueTypeSTRING, NUMBER, BOOLEAN, DATE_TIME, หรือ FORMULA — ทำให้ง่ายต่อการแยกสาขาตามประเภทของค่าโดยไม่ต้องแยกวิเคราะห์สตริง. สตริงสูตรจะถูกจัดเก็บด้วย setFormula() และจะถูกคำนวณใหม่โดย 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 a1 = sheet.getCells().get("A1");
    a1.putValue("Revenue");
    Cell b1 = sheet.getCells().get("B1");
    b1.putValue(42500.00);
    Cell c1 = sheet.getCells().get("C1");
    c1.setFormula("=B1*1.2");
    // Check type
    assert b1.getType() == CellValueType.NUMBER;
    assert c1.getType() == CellValueType.FORMULA;
    workbook.save("values.xlsx");
}

การจัดรูปแบบเซลล์และสไตล์

การจัดรูปแบบถูกนำไปใช้ผ่านวัตถุ Style ที่ดึงมาจาก cell.getStyle() และเขียนกลับด้วย cell.setStyle(). วัตถุย่อย Font เปิดเผย setBold() และ setColor(). HorizontalAlignment ควบคุมการจัดแนวข้อความ — LEFT, CENTER หรือ RIGHT. รูปแบบตัวเลขที่กำหนดเองใช้สตริงรูปแบบ Excel ผ่าน style.setCustom(). ความสูงของแถวและความกว้างของคอลัมน์ถูกปรับผ่าน getRows().get(n).setHeight() และ getColumns().get(n).setWidth().

import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    Cell cell = sheet.getCells().get("B1");
    cell.putValue(9999.50);
    Style style = cell.getStyle();
    style.getFont().setBold(true);
    style.setCustom("#,##0.00");
    cell.setStyle(style);
    sheet.getCells().getRows().get(0).setHeight(24.0);
    sheet.getCells().getColumns().get(1).setWidth(16.0);
    workbook.save("styled.xlsx");
}

การตรวจสอบข้อมูล

กฎการตรวจสอบความถูกต้องของข้อมูลจะถูกเพิ่มผ่าน sheet.getValidations().add(). แต่ละวัตถุ Validation จะรับ ValidationType (เช่น WHOLE_NUMBER, DECIMAL, LIST) และ OperatorType (เช่น BETWEEN, GREATER_THAN). ขอบเขตสูตรจะถูกเก็บเป็นสตริงผ่าน setFormula1() และ setFormula2().

import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

try (Workbook workbook = new Workbook()) {
    Worksheet sheet = workbook.getWorksheets().get(0);
    int vi = sheet.getValidations().add(new CellArea(1, 0, 10, 0));
    Validation validation = sheet.getValidations().get(vi);
    validation.setType(ValidationType.WHOLE_NUMBER);
    validation.setOperator(OperatorType.BETWEEN);
    validation.setFormula1("1");
    validation.setFormula2("100");
    workbook.save("validated.xlsx");
}

AutoFilter

AutoFilters ให้ผู้ใช้ปลายทางสามารถกรองข้อมูลใน Excel อย่างโต้ตอบโดยไม่ต้องมีการกำหนดค่าเพิ่มเติม
การกำหนดค่า. เรียก ws.getAutoFilter().setRange() พร้อมช่วงแบบ A1-notation เพื่อ
เปิดใช้งานแถวหัวกรอง. คอลัมน์กรองเพิ่มเติมและเกณฑ์ที่กำหนดเองสามารถ
กำหนดผ่าน FilterColumn และ AutoFilterCustomFilter.

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("Product");
    sheet.getCells().get("B1").putValue("Qty");
    sheet.getAutoFilter().setRange("A1:B1");
    workbook.save("filtered.xlsx");
}

การตั้งค่าหน้าและการป้องกันแผ่นงาน

คลาส PageSetup ควบคุมขนาดกระดาษ, การวางแนวหน้า, และการตั้งค่าให้พอดีกับหน้า สำหรับผลลัพธ์ที่พร้อมพิมพ์ การป้องกันแผ่นงานถูกนำไปใช้ผ่าน protect() ด้วย WorksheetProtectionModel, ทำให้เซลล์บางส่วนยังคงสามารถแก้ไขได้ในขณะที่ล็อคส่วนที่เหลือ ลิงก์ไฮเปอร์จัดการผ่าน HyperlinkCollection.


เริ่มต้นอย่างรวดเร็ว

เพิ่ม dependency ให้กับ pom.xml ของคุณ:

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

สร้างเวิร์กบุ๊กที่มีคุณลักษณะหลักทั้งหมดภายในไม่เกิน 20 บรรทัด:

import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;

public class QuickStart {
    public static void main(String[] args) {
        try (Workbook workbook = new Workbook()) {
            Worksheet sheet = workbook.getWorksheets().get(0);
            sheet.setName("Sales");
            sheet.getCells().get("A1").putValue("Revenue");
            Cell b1 = sheet.getCells().get("B1");
            b1.putValue(42500.00);
            Style style = b1.getStyle();
            style.getFont().setBold(true);
            style.setCustom("#,##0.00");
            b1.setStyle(style);
            sheet.getAutoFilter().setRange("A1:B1");
            workbook.save("sales.xlsx");
        }
    }
}

รูปแบบที่รองรับ

รูปแบบส่วนขยายอ่านเขียน
Excel Open XML.xlsx

การบันทึกในขณะนี้จำกัดอยู่ที่ .xlsx. ไลบรารีเก็บและส่งต่อสูตรได้ แต่ไม่ได้ทำหน้าที่เป็นเครื่องยนต์คำนวณสเปรดชีตเต็มรูปแบบ.


ซอร์สเปิดและการให้สิทธิ์

Aspose.Cells FOSS for Java ถูกปล่อยภายใต้ใบอนุญาต MIT คุณสามารถใช้, แก้ไขและแจกจ่ายได้ในโครงการส่วนบุคคล, โครงการโอเพ่นซอร์ส, และโครงการเชิงพาณิชย์โดยไม่มีข้อจำกัด. ซอร์สโค้ดพร้อมให้บริการที่ github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java


เริ่มต้นใช้งาน