บทนำ
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 CellValueType — STRING, 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