API منبع باز جاوا برای صفحات گسترده مایکروسافت اکسل
ایجاد، خواندن، ویرایش و تبدیل فایلهای صفحه گسترده Microsoft Excel در برنامههای جاوا از طریق API منبع باز.
FastExcel چیست؟
کار با فایل های اکسل بزرگ همیشه برای برنامه نویسان نرم افزار یک چالش بزرگ است و برای مدیریت آن نیاز به مهارت ها و منابع سطح بالایی دارد. FastExcel یک کتابخانه منبع باز جاوا اکسل بسیار قدرتمند است که به توسعه دهندگان نرم افزار اجازه می دهد تا کتاب های کاری Microsoft Excel XLSX را در برنامه های جاوای خود ایجاد و مطالعه کنند. این به توسعه دهندگان کمک می کند تا با فایل های اکسل بزرگ بدون هیچ گونه وابستگی خارجی کار کنند.
استفاده از FastExcel بسیار ساده است و تنها با جمع آوری عناصر ضروری، ردپای حافظه و عملکرد بالا را کاهش می دهد. چندین ویژگی مهم برای کار با صفحهگستردهها از جمله ایجاد کتابهای کار ساده، اعمال سبکها و قالببندی در سلولها، ستونها و ردیفها، تنظیم سبک در طیف وسیعی از سلولها، ادغام سلولها و ردیفها، سایه زدن به ردیفهای متناوب، تنظیم اندازه کاغذ و جهتگیری صفحه را شامل میشود. ، حاشیه های صفحه را تنظیم کنید، یک صفحه ثابت ایجاد کنید و غیره.
FastExcel پشتیبانی کاملی از multithreading ارائه میکند، به این معنی که هر کاربرگ در کتاب کار میتواند توسط یک رشته مختلف تولید شود، در حالی که به طور کامل از رشتهها و سبکهای مشترک پشتیبانی میکند. خواننده FastExcel بسیار کارآمد است و فقط محتوای سلولها را میخواند و سبکها، نمودارها و موارد دیگر را کنار میگذارد.
شروع کار با FastExcel
کتابخانه FastExcel به Java 8+ نیاز دارد. با Maven بسازید. لطفاً وابستگی زیر را در POM خود بگنجانید
وابستگی FastExcel Maven
<dependency>
<groupId> org.dhatim</groupId>
<artifactId>fastexcel</artifactId>
<version>0.12.13</version>
</dependency>
همچنین می توانید کتابخانه اشتراکی کامپایل شده را از مخزن GitHub دانلود و نصب کنید.
فایل اکسل XLSX را از طریق Java API ایجاد کنید
کتابخانه متن باز FastExcel به توسعه دهندگان نرم افزار اجازه می دهد تا فایل Excel XLSX را تنها با چند خط کد جاوا تولید کنند. اضافه کردن یک کتاب کار جدید و افزودن کاربرگ های مختلف، درج سلول ها و ردیف ها در داخل کاربرگ بسیار آسان است. این کتابخانه از چندین ویژگی مربوط به قالببندی و استایلبندی متن پشتیبانی میکند، مانند تغییر سبک سلول، تنظیم سبک در طیف وسیعی از سلولها، سایهزنی ردیفهای متناوب، تنظیم اندازه کاغذ و جهتگیری صفحه و غیره.
ایجاد Excel Fie جدید از طریق کتابخانه جاوا
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();
}
}
}
فایل اکسل XLSX را از طریق Java API بخوانید
کتابخانه FastExcel یک خواننده بسیار قدرتمند ارائه کرده است که به کاربران اجازه می دهد تا یک کتاب کار اکسل را به راحتی باز کرده و بخوانند. این یک جایگزین جریان Apache POI است اما در مقایسه با Apache POI بسیار ساده است و 10 برابر سریعتر از آن است. فقط میتواند محتوای سلول را بخواند و سبکها، نمودارها و بسیاری موارد دیگر را کنار بگذارد. مثال زیر نشان می دهد که چگونه می توان یک کتاب کار را باز کرد و همه ردیف ها را به صورت جریانی با استفاده از جاوا خواند.
باز کردن و خواندن ردیف های کتاب کار به روش جریانی از طریق جاوا
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 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();
}