บทนำ
Aspose.Cells FOSS สำหรับ Java เป็นไลบรารี pure-Java เวอร์ชัน 17 ใบอนุญาต MIT สำหรับสร้างและจัดการเวิร์กบุ๊ก Excel .xlsx โดยไม่ต้องพึ่งพา Microsoft Office ใดๆ บทความนี้จะพาไปผ่านการดำเนินการจัดการสเปรดชีตที่พบบ่อยที่สุด: การสร้างเวิร์กบุ๊ก, การโหลดไฟล์, การทำงานกับเซลล์, และการบันทึกผลลัพธ์.
เริ่มต้นอย่างรวดเร็ว
เพิ่มการพึ่งพา Maven ไปยัง pom.xml ของคุณเพื่อเริ่มต้น:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-cells-foss</artifactId>
<version>26.5.0</version>
</dependency>ไม่ต้องการไฟล์ใบอนุญาตหรือคีย์ API. ไลบรารีนี้เป็นโอเพนซอร์สเต็มรูปแบบภายใต้ใบอนุญาต MIT.
การสร้าง Workbook
คอนสตรัคเตอร์ Workbook() สร้างเวิร์กบุ๊กใหม่ที่ว่างเปล่าพร้อมแผ่นงานเริ่มต้นหนึ่งแผ่น:
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.Worksheet;
Workbook workbook = new Workbook();
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
System.out.println(sheet.getName()); // Sheet1
ใช้ WorksheetCollection.add(sheetName) เพื่อเพิ่มแผ่นงานที่มีชื่อและใช้ removeAt(sheetName) เพื่อลบแผ่นงานเหล่านั้น:
int idx = workbook.getWorksheets().add("Report");
workbook.getWorksheets().get(idx).setName("Report");
workbook.getWorksheets().removeAt("Sheet1");
การโหลดไฟล์ที่มีอยู่
ส่งพาธไฟล์ไปยัง Workbook(fileName) เพื่อเปิดเวิร์กบุ๊ก .xlsx ที่มีอยู่แล้ว:
Workbook workbook = new Workbook("data/report.xlsx");
System.out.println("Sheets: " + workbook.getWorksheets().getCount());
สำหรับสตรีมอินพุต (เช่น จากฐานข้อมูลหรือการตอบกลับของ HTTP) ให้ใช้ Workbook(stream):
try (java.io.InputStream is = new java.io.FileInputStream("data/report.xlsx")) {
Workbook workbook = new Workbook(is);
}
การอ่านและเขียนเซลล์
Worksheet.getCells() คืนค่า Cells คอลเลกชัน เข้าถึงเซลล์แต่ละตัวโดยใช้ชื่อหรือโดยดัชนีแถว/คอลัมน์เริ่มต้นจากศูนย์:
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;
WorksheetCollection sheets = workbook.getWorksheets();
Cells cells = sheets.get(0).getCells();
// Write by cell name
cells.get("A1").putValue("Product");
cells.get("B1").putValue("Revenue");
// Write by row/column index
cells.get(1, 0).putValue("Widget A"); // A2
cells.get(1, 1).putValue(45000); // B2
// Read back
String name = cells.get("A2").getStringValue();
Object rev = cells.get("B2").getValue();
System.out.println(name + ": " + rev);
การตั้งสูตร
ใช้ Cell.setFormula() เพื่อเก็บสตริงสูตรในเซลล์ สูตรจะถูกประเมินเมื่อเวิร์กบุ๊กถูกบันทึกและโหลดใหม่:
cells.get("B3").setFormula("=SUM(B2:B2)");
System.out.println(cells.get("B3").getFormula()); // =SUM(B2:B2)
ผลลัพธ์ของสูตรจะถูกคำนวณเมื่อเวิร์กบุ๊กถูกบันทึกและโหลดใหม่.
การบันทึกเวิร์กบุ๊ก
Workbook.save(fileName) เขียนเวิร์กบุ๊ก; รูปแบบจะกำหนดโดยส่วนขยายไฟล์ (.xlsx สร้างไฟล์ Excel 2007+):
workbook.save("output/result.xlsx");
ห่อเวิร์กบุ๊กขนาดใหญ่ด้วย try-with-resources เสมอเพื่อปล่อยตัวจัดการไฟล์โดยเร็ว:
try (Workbook workbook = new Workbook("data/input.xlsx")) {
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Updated");
workbook.save("data/output.xlsx");
}
สิ่งที่ควรสำรวจต่อไป
Aspose.Cells FOSS สำหรับ Java มี API สำหรับการดำเนินการระดับแผ่นงานเหนือการจัดการเซลล์:
- การป้องกันแผ่นงาน:
protect()/unprotect()onWorksheet - AutoFilter:
Worksheet.getAutoFilter()สำหรับการกรองข้อมูลโดยโปรแกรม - รูปแบบเซลล์:
Cell.getStyle()/setStyle()withStyleproperties - เซลล์ที่รวมกัน:
Cells.merge(firstRow, firstColumn, totalRows, totalColumns)
สำหรับการสาธิต API อย่างเต็มรูปแบบ ดู developer guide และ API reference.
เริ่มต้นใช้งาน
ตัวอย่างด้านบนครอบคลุมงานการจัดการสเปรดชีตที่พบบ่อยที่สุดใน Aspose.Cells FOSS สำหรับ Java. สำหรับการสาธิต API อย่างเต็มรูปแบบรวมถึงการตรวจสอบ, แผนภูมิ, และการจัดรูปแบบ ดู developer guide.