เปิดแหล่งที่มา Java API สําหรับ Microsoft Excel สเปรดชีต
สร้าง อ่าน แก้ไข และแปลงไฟล์ Microsoft Excel Spreadsheet ในแอปพลิเคชัน Java ผ่าน Open Source API
FastExcel คืออะไร?
การทํางานกับไฟล์ Excel ขนาดใหญ่เป็นความท้าทายที่ยิ่งใหญ่สําหรับโปรแกรมเมอร์ซอฟต์แวร์และต้องใช้ทักษะและทรัพยากรระดับสูงในการจัดการ FastExcel เป็นแหล่งเปิดที่มีประสิทธิภาพมาก Java ไลบรารี Excel ที่ช่วยให้ผู้พัฒนาซอฟต์แวร์สามารถสร้างและอ่านตํารา Microsoft Excel XLSX ภายในแอพพลิเคชัน Java ตัวเอง ช่วยให้นักพัฒนาทํางานร่วมกับไฟล์ Excel ขนาดใหญ่โดยไม่ต้องพึ่งพาภายนอกใด ๆ
FastExcel ใช้งานง่ายมากและลดรอยเท้าของหน่วยความจําและประสิทธิภาพสูงโดยการสะสมเฉพาะองค์ประกอบที่จําเป็น มันได้รวมคุณสมบัติที่สําคัญหลายประการสําหรับการทํางานกับสเปรดชีตเช่นการสร้างตําราเรียนที่เรียบง่ายใช้รูปแบบและการจัดรูปแบบเซลล์คอลัมน์และแถวกําหนดสไตล์บนช่วงของเซลล์ผสานเซลล์และแถวเรียงกระดาษ
FastExcel ให้การสนับสนุนที่สมบูรณ์สําหรับ multithreading ซึ่งหมายความว่าแผ่นงานแต่ละแผ่นในตําราสามารถสร้างขึ้นโดยด้ายที่แตกต่างกันในขณะที่สนับสนุนสตริงและสไตล์ที่ใช้ร่วมกันอย่างเต็มที่ ผู้อ่าน FastExcel มีประสิทธิภาพมากและอ่านเฉพาะเซลล์เนื้อหาและทิ้งรูปแบบกราฟและสิ่งอื่น ๆ
เริ่มต้นใช้งาน FastExcel
ห้องสมุด FastExcel ต้อง Java 8+ สร้างด้วยสวรรค์ โปรดระบุการพึ่งพาต่อไปนี้ใน POM ของคุณ
FastExcel การพึ่งพา Haven
<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>
คุณยังสามารถดาวน์โหลดไลบรารีที่ใช้ร่วมกันที่คอมไพล์แล้วจากที่เก็บ GitHub และติดตั้ง
สร้างไฟล์ Excel XLSX ผ่าน Java API
ห้องสมุดโอเพ่นซอร์ส FastExcel ช่วยให้ผู้พัฒนาซอฟต์แวร์สามารถสร้างไฟล์ Excel XLSX ได้โดยใช้เพียงสองบรรทัด Java รหัส มันง่ายมากที่จะเพิ่มตําราใหม่และเพิ่มแผ่นงานที่แตกต่างกันแทรกเซลล์และแถวภายในแผ่นงาน ไลบรารีสนับสนุนคุณสมบัติต่างๆที่เกี่ยวข้องกับการจัดรูปแบบข้อความและการจัดแต่งทรงผมเช่นการเปลี่ยนแปลงสไตล์เซลล์, รูปแบบการตั้งค่าในช่วงของเซลล์, แถวสลับสี, ขนาดกระดาษตั้งค่าและการวางแนวหน้าและอื่น ๆ
สร้างไฟล์ Excel ใหม่ผ่านห้องสมุด Java
package com.zetcode;
import org.dhatim.fastexcel.Workbook;
import org.dhatim.fastexcel.Worksheet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class FastExcelSimpleWrite {
public static void main(String[] args) throws IOException {
var words = List.of("sky", "blue", "work", "falcon");
int row = 0;
int col = 0;
var f = new File("/home/janbodnar/tmp/words.xlsx");
try (var fos = new FileOutputStream(f)) {
var wb = new Workbook(fos, "Application", "1.0");
Worksheet ws = wb.newWorksheet("Sheet 1");
for (var word : words) {
ws.value(row, col, word);
row++;
}
wb.finish();
}
}
}
อ่านไฟล์ Excel XLSX ผ่าน Java API
ห้องสมุด FastExcel ได้ให้ผู้อ่านที่มีประสิทธิภาพมากที่ช่วยให้ผู้ใช้สามารถเปิดและอ่านตํารา Excel ได้อย่างง่ายดาย เป็นทางเลือกในการสตรีมของ Apache PO แต่ง่ายต่อการจัดการเมื่อเปรียบเทียบกับ Apache PO และเร็วกว่า 10 เท่า มันสามารถอ่านเนื้อหาของเซลล์และทิ้งรูปแบบกราฟและสิ่งอื่น ๆ อีกมากมาย ตัวอย่างต่อไปนี้แสดงวิธีการเปิดตําราและอ่านแถวทั้งหมดในวิธีสตรีมโดยใช้ Java
เปิด & อ่าน Cookbook รอสส์ในวิธีสตรีมมิ่งผ่าน Java
try (InputStream is = ...; ReadableWorkbook wb = new ReadableWorkbook(is)) {
Sheet sheet = wb.getFirstSheet();
try (Stream rows = sheet.openStream()) {
rows.forEach(r -> {
BigDecimal num = r.getCellAsNumber(0).orElse(null);
String str = r.getCellAsString(1).orElse(null);
LocalDateTime date = r.getCellAsDate(2).orElse(null);
});
}
}
การสร้างสเปรดชีตหลายรายการผ่าน FastExcel
Multithreading เป็นความสามารถของหน่วยประมวลผลกลาง (CPU) เพื่อให้กระทู้หลายของการดําเนินการพร้อมกันสนับสนุนโดยระบบปฏิบัติการ หากคอมพิวเตอร์มีโปรเซสเซอร์หลายตัวหรือแกนประมวลผลระบบปฏิบัติการจะรับผิดชอบในการจัดสรรเธรดให้กับโปรเซสเซอร์ในวิธีที่มีประสิทธิภาพมากที่สุด ห้องสมุดโอเพ่นซอร์ส FastExcel สนับสนุนการสร้างหลายแง่มุมและสร้างแผ่นงานแต่ละแผ่นโดยใช้รหัส Java
สร้างสเปรดชีตในสภาพแวดล้อมแบบมัลติเธรดผ่าน Java API
try (OutputStream os = ...) {
Workbook wb = new Workbook(os, "MyApplication", "1.0");
Worksheet ws1 = wb.newWorksheet("Sheet 1");
Worksheet ws2 = wb.newWorksheet("Sheet 2");
CompletableFuture cf1 = CompletableFuture.runAsync(() -> {
// Fill worksheet 1
...
});
CompletableFuture cf2 = CompletableFuture.runAsync(() -> {
// Fill worksheet 2
...
});
CompletableFuture.allOf(cf1, cf2).get();
wb.finish();
}