קוד פתוח Java API עבור גיליונות אלקטרוניים של Microsoft Excel

צור, קרא, ערוך והמר קובצי גיליון אלקטרוני של Microsoft Excel ביישומי Java באמצעות API של קוד פתוח.

מה זה FastExcel?

עבודה עם קבצי Excel גדולים היא תמיד אתגר גדול עבור מתכנתים תוכנה ודורשת מיומנויות ברמה גבוהה ומשאבים כדי לנהל אותו. FastExcel היא ספריית קוד פתוח רב עוצמה Java Excel המאפשרת למפתחי תוכנה ליצור ולקרוא את ספרי הבישול של Microsoft Excel XLSX בתוך Java היישומים שלהם. זה עוזר למפתחים לעבוד עם קבצי Excel גדולים ללא כל תלות חיצונית.

FastExcel הוא פשוט מאוד לשימוש ומקטין את טביעת הרגל הזיכרון וביצועים גבוהים על ידי צבירת רק אלמנטים הכרחיים. הוא כלל מספר תכונות חשובות לעבודה עם גיליונות אלקטרוניים כגון יצירת ספרי בישול פשוטים, להחיל סגנונות ועיצוב לתאים, עמודות ושורות, להגדיר סגנון על מגוון של תאים, מיזוג תאים ושורות נייר, חלופי.

FastExcel מספק תמיכה מלאה עבור multithreading כלומר כל גליון עבודה בחוברת הבישול יכול להיווצר על ידי חוט אחר, תוך תמיכה מלאה מחרוזות וסגנונות משותפים. הקורא FastExcel הוא יעיל מאוד לקרוא רק תאים תוכן וסגנונות לזרוק, גרפים, ודברים אחרים.

Previous Next

תחילת העבודה עם FastExcel

הספריה FastExcel דורשת Java. לבנות עם Haven. נא לכלול את התלות הבאה ב-POM שלך.

FastExcel Maven תלות

<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>

אתה יכול גם להוריד את הספרייה המשותפת שהורכבה ממאגר GitHub ולהתקין אותה.

יצירת קובץ Excel XLSX באמצעות Java

ספריית קוד פתוח 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 באמצעות JavaAPI

הספריה FastExcel סיפקה לקורא רב עוצמה שמאפשר למשתמשים לפתוח ולקרוא בקלות ספר בישול של Excel. זוהי חלופה סטרימינג של אפאצ'י PO אבל פשוט מאוד לטפל בהשוואה Apache PO ו 10 פעמים מהר יותר מזה. זה יכול רק לקרוא תוכן תאים וסגנונות לזרוק, גרפים, ודברים רבים אחרים. הדוגמה הבאה מראה כיצד לפתוח ספר בישול ולקרוא את כל השורות באופן סטרימינג באמצעות Java.

פתח קרא את ספר הבישול רוס בדרך סטרימינג דרך 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 קוד.

יצירת גיליונות הפצה בסביבת Multithreading באמצעות 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();
}
 עִברִית