บทนำ
Aspose.Cells FOSS for Java เป็นไลบรารี Java 17 แบบโอเพนซอร์สที่ช่วยให้นักพัฒนาสามารถสร้าง, โหลด, แก้ไข และบันทึกเวิร์กบุ๊ก Excel .xlsx ได้อย่างสมบูรณ์บน JVM — โดยไม่มีการติดตั้ง Microsoft Office, ไม่มีไลบรารีเนทีฟ, และไม่มีการพึ่งพา runtime เชิงพาณิชย์ของ Aspose. API สาธารณะอยู่ภายใต้แพ็กเกจ com.aspose.cells_foss และเผยแพร่ภายใต้สัญญาอนุญาต MIT ทำให้เหมาะสำหรับโครงการส่วนบุคคล, โอเพนซอร์ส, และเชิงพาณิชย์เช่นกัน.
ไลบรารีจัดจำหน่ายเป็นอาร์ติแฟกต์ Maven มาตรฐานและครอบคลุมโมเดลวัตถุสเปรดชีต OOXML หลัก: เวิร์กบุ๊ก, เวิร์กชีต, เซลล์, สไตล์ และคอลเลกชัน. มันสร้างด้วย Maven 3.9+ และมุ่งเป้าไปที่ Java 17+, ผสานรวมอย่างเป็นธรรมชาติใน pipeline การสร้าง Java สมัยใหม่ใด ๆ.
เพิ่ม dependency ไปยัง pom.xml ของคุณและคุณพร้อมที่จะสร้างหรือประมวลผลสมุดงาน Excel จาก servlet, batch job, ฟังก์ชัน Lambda หรือบริบทฝั่งเซิร์ฟเวอร์ Java ใด ๆ
คุณสมบัติหลัก
การจัดการ Workbook และ Worksheet
คลาส Workbook เป็นจุดเริ่มต้นสำหรับการดำเนินการสเปรดชีตทั้งหมด มัน implements AutoCloseable จึงบูรณาการอย่างสะอาดกับรูปแบบ try-with-resources คุณสามารถสร้างเวิร์กบุ๊กใหม่ โหลดไฟล์ .xlsx ที่มีอยู่แล้ว เพิ่มและลบแผ่นงาน เปลี่ยนชื่อแผ่นด้วย setName() ตั้งค่าแผ่นงานที่ใช้งานอยู่ และควบคุมการมองเห็นแท็บได้
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
import com.aspose.cells_foss.WorksheetCollection;
try (Workbook workbook = new Workbook()) {
WorksheetCollection sheets = workbook.getWorksheets();
Worksheet sheet = sheets.get(0);
sheet.setName("Sales");
workbook.save("sales.xlsx");
}
ค่าของเซลล์และสูตร
คลาส Cell รองรับการจัดเก็บค่าที่มีประเภทผ่าน putValue() สำหรับสตริง, จำนวนเต็ม,
ดับเบิล, บูลีน, และค่าประเภท LocalDateTime. สตริงสูตรจะถูกจัดเก็บด้วย
setFormula() และจะถูกคำนวณใหม่โดย Excel เมื่อเปิดไฟล์. ประเภทของค่าจะถูกเปิดเผย
ผ่าน CellValueType — STRING, NUMBER, BOOLEAN, DATE_TIME หรือ FORMULA.
import com.aspose.cells_foss.Cell;
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(12500.75);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
workbook.save("values.xlsx");
}
การจัดรูปแบบเซลล์และสไตล์
การจัดรูปแบบถูกนำไปใช้ผ่านคลาส Style ที่ดึงมาจาก cell.getStyle() และเขียนกลับด้วย cell.setStyle() คุณสามารถกำหนดการทำให้เป็นตัวหนาและสีบน Font ใช้ HorizontalAlignment และตั้งค่าสตริงรูปแบบตัวเลขแบบกำหนดเองผ่าน style.setCustom() ความสูงของแถวและความกว้างของคอลัมน์ถูกควบคุมผ่าน getRows().get(n).setHeight() และ getColumns().get(n).setWidth().
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Cell;
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.5);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
workbook.save("styled.xlsx");
}
การตรวจสอบข้อมูลและการจัดรูปแบบตามเงื่อนไข
กฎการตรวจสอบข้อมูลจะถูกเพิ่มผ่าน sheet.getValidations().add(). แต่ละวัตถุ Validation จะเก็บ ValidationType (เช่น WHOLE_NUMBER), OperatorType (เช่น BETWEEN) และสตริงสูตรสำหรับขอบเขต. การจัดรูปแบบตามเงื่อนไขจะถูกเพิ่มผ่าน sheet.getConditionalFormattings().add(), ซึ่งจะคืนค่า FormatConditionCollection ที่คุณระบุช่วงเซลล์และเงื่อนไข.
import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.OperatorType;
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");
}
AutoFilters และการตั้งค่าหน้า
AutoFilters ถูกกำหนดค่าโดยการเรียก ws.getAutoFilter().setRange() พร้อมกับ A1-notation
สตริงช่วง. อ็อบเจ็กต์ PageSetup ควบคุมขนาดกระดาษ, การวางแนว, และ fit-to-page
การตั้งค่าสำหรับผลลัพธ์พร้อมพิมพ์. การป้องกัน Worksheet ถูกนำไปใช้ผ่าน protect() พร้อมกับWorksheetProtectionModel.
เริ่มต้นอย่างเร็ว
เพิ่มการพึ่งพา Maven ไปยัง pom.xml ของคุณ:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
สร้างเวิร์กบุ๊ก, เติมข้อมูลในเซลล์, ใช้การจัดรูปแบบ, และบันทึก:
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("Report");
sheet.getCells().get("A1").putValue("Revenue");
Cell cell = sheet.getCells().get("B1");
cell.putValue(12500.75);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
sheet.getCells().getRows().get(0).setHeight(22.0);
sheet.getCells().getColumns().get(1).setWidth(14.5);
workbook.save("report.xlsx");
}
}
}
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
การบันทึกในขณะนี้จำกัดอยู่ที่ .xlsx. ไลบรารีเก็บและส่งต่อสูตร, แต่ไม่ได้เป็นเครื่องคำนวณสเปรดชีตเต็มรูปแบบ.
โอเพนซอร์สและการให้สิทธิ์
Aspose.Cells FOSS for Java ถูกปล่อยภายใต้สัญญาอนุญาต MIT คุณสามารถใช้, แก้ไข และแจกจ่ายได้ในโครงการส่วนบุคคล, โอเพ่นซอร์ส, และเชิงพาณิชย์โดยไม่มีข้อจำกัด. ซอร์สโค้ดสามารถเข้าถึงได้ที่ github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java.