![](https://products-qa.fileformat.com/ar/spreadsheet/java/apache-poi-xssf/header-image.png)
Apache POI-XSSF
واجهة برمجة تطبيقات Java مفتوحة المصدر لملفات Microsoft ® Excel XLSX
قم بإنشاء وتحرير وتحويل جداول بيانات Excel XLSX إلى تنسيقات ملفات CSV و HTML عبر مكتبة Java.
ما هو Apache POI-XSSF؟
Apache POI-XSSF هو تطبيق Java خالص لتنسيق ملف Excel 2007 XLSX. يوفر API إجراءات لإنشاء ملفات Excel XLSX وقراءتها وتعديلها وكتابتها. يوفر هياكل منخفضة المستوى لذوي الاحتياجات الخاصة. كما يوفر أيضًا واجهة برمجة تطبيقات نموذجية للحدث للوصول الفعال للقراءة فقط بالإضافة إلى واجهة برمجة تطبيقات نموذج المستخدم الكامل لإنشاء ملفات XLSX وقراءتها وتعديلها. يوفر Apache POI-XSSF دعمًا كبيرًا لميزات Excel الإضافية مثل العمل مع الأوراق والصيغ وإنشاء أنماط الخلايا عن طريق ملء الألوان والحدود والخطوط والرؤوس والتذييلات والأشكال وعمليات التحقق من صحة البيانات والصور والارتباطات التشعبية وغير ذلك الكثير.
الشروع في العمل مع Apache POI XSSF
بادئ ذي بدء ، تحتاج إلى تثبيت Java Development Kit (JDK) على نظامك. إذا كان لديك بالفعل ، فانتقل إلى تنزيل صفحة Apache POI للحصول على أحدث إصدار ثابت في أرشيف. قم باستخراج محتويات ملف ZIP في أي دليل حيث يمكن ربط المكتبات المطلوبة ببرنامج Java الخاص بك. هذا كل شيء!
تعتبر الإشارة إلى Apache POI في مشروع Java المستند إلى Maven أبسط. كل ما تحتاجه هو إضافة التبعية التالية في ملف pom.xml الخاص بك والسماح لـ IDE بجلب ملفات Apache POI Jar والإشارة إليها.
تبعية Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
قم بإنشاء جداول بيانات Excel كبيرة باستخدام Java API
يوفر Apache POI XSSF بصمة ذاكرة منخفضة عبر واجهة برمجة تطبيقات SXSSF للتعامل مع كتابة البيانات الكبيرة إلى ملفات MS Excel. يسمح هذا بكتابة ملفات كبيرة جدًا دون نفاد الذاكرة حيث يتم الاحتفاظ بجزء قابل للتكوين فقط من الصفوف في الذاكرة في أي وقت. يحقق POI-SXSSF بصمة ذاكرة منخفضة عن طريق تقييد الوصول إلى الصفوف الموجودة داخل نافذة منزلقة ، بينما يتيح XSSF الوصول إلى جميع الصفوف في المستند. يتعذر الوصول إلى الصفوف القديمة التي لم تعد موجودة في النافذة ، حيث يتم كتابتها على القرص. يمكنك إنشاء ملف اكسل كبير في جافا باتباع الخطوات التالية
قم بإنشاء ملف Excel كبير باستخدام Java
- قم بإنشاء SXSSFWorkbook جديد واحتفظ بـ 100 صف في الذاكرة ، وسيتم مسح الصفوف المتجاوزة على القرص
- قم بإنشاء ورقة عمل جديدة باستخدام طريقة createSheet ()
- أدخل البيانات في 2000 صف و 2000 خلية باستخدام createRow () و createCell () و setCellValue ("بياناتك") بالداخل وحلقة متداخلة
- احفظ الملف باستخدام FileOutputStream () وتمرير اسم ملف الإخراج
- الكتابة إلى ملف باستخدام طريقة SXSSFWorkbook.Write () ومرر FileOutputStream كمعامل
قم بإنشاء ملف Excel كبير
// 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();
Java APIs لـ Excel Workbook Creation & Sheets Addition
يتيح Apache POI XSSF لمبرمجي الكمبيوتر إنشاء مصنف Excel جديد بتنسيق ملف XLSX. بمجرد قيام المطورين بإنشاء المصنف ، يتم إنشاء أوراق العمل من مثيل موجود من المصنف ، وتتم إضافة الورقة التي تم إنشاؤها حديثًا تلقائيًا بالتسلسل إلى المصنف.
قم بإنشاء مصنف Excel وإضافة أوراق
// 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);
قم بتحويل جدول بيانات Excel إلى CSV وتنسيق ملف آخر
يمكن للمطورين والمبرمجين في Java تحويل جدول بيانات Excel بسهولة إلى تنسيق ملف CSV باستخدام Apache POI XSSF API. يشير CSV إلى قيم مفصولة بفواصل وهو تنسيق شائع جدًا يستخدم لتبادل البيانات بين العديد من التطبيقات. أولاً ، يحتاج المطورون إلى قراءة ملف 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 لديه القدرة على التعامل مع رؤوس الصفحات الأولى وتذييلاتها ، بالإضافة إلى رؤوس وتذييلات الصفحات الزوجية / الفردية. تعتبر الرؤوس والتذييلات جزءًا مهمًا جدًا من جدول بيانات Excel. يحتوي عادةً على معلومات إضافية مثل التواريخ وأرقام الصفحات واسم المؤلف والحواشي السفلية ، مما يساعد في الحفاظ على تنظيم المستندات الأطول وتسهيل قراءتها. يمكن معالجة كافة إشارات خاصية Header / Footer في XSSF. الرأس والتذييل الفرديان هما رأس وتذييل الصفحة الافتراضيان. يتم عرضه على كافة الصفحات التي لا تعرض رأس الصفحة الأولى أو رأس الصفحة الزوجية.
دمج الخلايا واستخراج النص داخل ملفات Excel XLSX
يوفر Apache POI XSSF القدرة التي تسمح لمبرمجي Java بدمج خلايا متعددة في خلية واحدة داخل جدول بيانات Excel. لقد تضمنت طرقًا تأخذ فهارس الخلية كوسيطة وتدمج الخلايا في خلية واحدة كبيرة. واحدة من أكثر الميزات تطلبًا هي القدرة على استخراج النص من ملف XLSX واستخدامه وفقًا لاحتياجاتك. يوفر Apache POI استخراج النص الأساسي لجميع تنسيقات الملفات المدعومة في المشروع. لتلبية احتياجات استخراج النص المتقدمة ، بما في ذلك استخراج النص الغني (مثل التنسيق والتصميم) ، إلى جانب إخراج XML و HTML ، تعمل Apache POI بشكل وثيق مع Apache Tika لتقديم Tika Parsers المدعومة من POI لجميع تنسيقات الملفات المدعومة من المشروع.