Apache POI-XSSF
Java API منبع باز برای Microsoft® Excel XLSX Files
ایجاد، ویرایش و تبدیل صفحات گسترده Excel XLSX به فرمت های فایل CSV و HTML از طریق کتابخانه جاوا.
Apache POI-XSSF چیست؟
Apache POI-XSSF یک پیاده سازی جاوا خالص از فرمت فایل XLSX Excel 2007 است. API رویه هایی را برای ایجاد، خواندن، اصلاح و نوشتن فایل های Excel XLSX فراهم می کند. ساختارهای سطح پایین را برای افراد دارای نیازهای ویژه فراهم می کند. همچنین یک API مدل رویداد برای دسترسی کارآمد فقط خواندنی و همچنین یک API مدل کامل کاربر برای ایجاد، خواندن و اصلاح فایلهای XLSX ارائه میکند. Apache POI-XSSF از ویژگیهای اضافی اکسل مانند کار با برگهها، فرمولها، ایجاد سبک سلول با پر کردن رنگها و حاشیهها، فونتها، سرصفحهها و پاورقیها، اشکال، اعتبارسنجی دادهها، تصاویر، لینکها و بسیاری موارد دیگر پشتیبانی میکند.
شروع به کار با Apache POI XSSF
اول از همه، شما باید کیت توسعه جاوا (JDK) را روی سیستم خود نصب کنید. اگر قبلاً آن را دارید، به صفحه دانلود POI Apache بروید تا آخرین نسخه پایدار را در یک آرشیو دریافت کنید. محتویات فایل ZIP را در هر دایرکتوری که از آنجا می توان کتابخانه های مورد نیاز را به برنامه جاوا شما پیوند داد استخراج کنید. این همه است!
ارجاع به POI Apache در پروژه جاوا مبتنی بر Maven شما حتی ساده تر است. تنها چیزی که نیاز دارید این است که وابستگی زیر را در pom.xml خود اضافه کنید و اجازه دهید IDE شما فایل های Apache POI Jar را واکشی و ارجاع دهد.
Apache POI Maven Dependency
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
با استفاده از Java API صفحات گسترده اکسل ایجاد کنید
Apache POI XSSF حافظه کم را از طریق SXSSF API برای مدیریت نوشتن داده های بزرگ در فایل های MS Excel ارائه می دهد. این امکان نوشتن فایلهای بسیار بزرگ را بدون اتمام حافظه فراهم میکند، زیرا تنها بخش قابل تنظیمی از ردیفها در هر زمان در حافظه نگهداری میشوند. POI-SXSSF با محدود کردن دسترسی به ردیفهایی که در یک پنجره کشویی قرار دارند، ردپای حافظه کم خود را به دست میآورد، در حالی که XSSF به تمام ردیفهای سند دسترسی میدهد. ردیفهای قدیمیتر که دیگر در پنجره نیستند، از آنجایی که روی دیسک نوشته میشوند، غیرقابل دسترسی میشوند. با استفاده از مراحل زیر می توانید یک فایل اکسل بزرگ در جاوا ایجاد کنید
ایجاد فایل اکسل بزرگ با استفاده از جاوا
- یک SXSSFWorkbook جدید ایجاد کنید و 100 ردیف را در حافظه نگه دارید، تعداد سطرهای بیش از حد به دیسک منتقل می شود.
- با استفاده از متد ()createSheet یک کاربرگ جدید ایجاد کنید
- با استفاده از createRow()، createCell() و setCellValue("داده های شما") در داخل و یک حلقه تو در تو، داده ها را در 2000 ردیف و 2000 سلول درج کنید.
- فایل را با استفاده از FileOutputStream() ذخیره کنید و نام فایل خروجی را ارسال کنید
- با استفاده از روش SXSSFWorkbook.Write () در فایل بنویسید و FileOutputStream را به عنوان پارامتر ارسال کنید
یک فایل اکسل بزرگ بسازید
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
APIهای جاوا برای ایجاد کتاب کار اکسل و افزودن برگه
Apache POI XSSF برنامه نویسان کامپیوتر را قادر می سازد تا یک کتاب کار اکسل جدید در قالب فایل XLSX ایجاد کنند. هنگامی که توسعه دهندگان کتاب کار را ایجاد می کنند، کاربرگ ها از یک نمونه موجود از Workbook ایجاد می شوند و برگه جدید ایجاد شده به طور خودکار به ترتیب به کتاب کار اضافه می شود.
کتاب کار اکسل ایجاد کنید و برگه ها را اضافه کنید
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
یک صفحه گسترده اکسل را به فرمت فایل CSV و دیگر تبدیل کنید
توسعه دهندگان و برنامه نویسان جاوا می توانند به راحتی یک صفحه گسترده اکسل را با استفاده از Apache POI XSSF API به فرمت فایل CSV تبدیل کنند. CSV مخفف Comma-Separated-Values است و یک فرمت بسیار رایج است که برای تبادل داده بین بسیاری از برنامه ها استفاده می شود. ابتدا، توسعه دهندگان باید فایل ورودی XLS را با استفاده از Apache POI XSSF API بخوانند و سپس اطلاعات استخراج شده را در فایل های CSV بنویسند.
XLSX را به CSV تبدیل کنید
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
بهبود XSSF برای سرصفحه ها و پاورقی ها
Apache POI XSSF توانایی مدیریت هدرها و پاورقی های صفحه اول و همچنین هدرها و پاورقی های زوج/فرد را دارد. سرصفحه ها و پاورقی ها بخش بسیار مهمی از صفحه گسترده اکسل هستند. معمولاً حاوی اطلاعات اضافی مانند تاریخ، شماره صفحه، نام نویسنده و پاورقی است که به سازماندهی اسناد طولانی تر و خواندن آسان تر کمک می کند. همه پرچمهای Header/Footer Property را میتوان در XSSF مدیریت کرد. سرصفحه و پاورقی عجیب، سرصفحه و پاورقی پیش فرض هستند. در تمام صفحاتی که هدر صفحه اول یا هدر صفحه زوج نمایش داده نمی شود، نمایش داده می شود.
ادغام سلول ها و استخراج متن در فایل های اکسل XLSX
Apache POI XSSF قابلیتی را فراهم می کند که به برنامه نویسان جاوا اجازه می دهد چندین سلول را در یک سلول در یک صفحه گسترده اکسل ادغام کنند. این شامل روش هایی است که شاخص های سلول را به عنوان آرگومان می گیرند و سلول ها را در یک سلول بزرگ ادغام می کنند. یکی از ویژگی های بسیار سخت، امکان استخراج متن از یک فایل XLSX و استفاده از آن بر اساس نیاز شما است. Apache POI استخراج متن اولیه را برای تمام فرمت های فایل های پشتیبانی شده از پروژه ارائه کرده است. برای نیازهای پیشرفته استخراج متن، از جمله استخراج متن غنی (مانند قالببندی و استایلسازی)، همراه با خروجی XML و HTML، Apache POI نزدیک با Apache Tika همکاری میکند تا تجزیهکنندههای Tika مبتنی بر POI را برای همه فرمتهای فایل پشتیبانیشده پروژه ارائه دهد.