บทนำ

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() on Worksheet
  • AutoFilter: Worksheet.getAutoFilter() สำหรับการกรองข้อมูลโดยโปรแกรม
  • รูปแบบเซลล์: Cell.getStyle() / setStyle() with Style properties
  • เซลล์ที่รวมกัน: Cells.merge(firstRow, firstColumn, totalRows, totalColumns)

สำหรับการสาธิต API อย่างเต็มรูปแบบ ดู developer guide และ API reference.

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

ตัวอย่างด้านบนครอบคลุมงานการจัดการสเปรดชีตที่พบบ่อยที่สุดใน Aspose.Cells FOSS สำหรับ Java. สำหรับการสาธิต API อย่างเต็มรูปแบบรวมถึงการตรวจสอบ, แผนภูมิ, และการจัดรูปแบบ ดู developer guide.

แหล่งข้อมูลที่เกี่ยวข้อง