เปิดแหล่งที่มา 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 มีประสิทธิภาพมากและอ่านเฉพาะเซลล์เนื้อหาและทิ้งรูปแบบกราฟและสิ่งอื่น ๆ

Previous Next

เริ่มต้นใช้งาน 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();
}
 ไทย