في مقالتنا السابقة ، مررنا بتفاصيل Apache POI ، API Java مفتوحة المصدر للعمل مع تنسيقات ملف Microsoft. في هذه المقالة ، سنذهب إلى مكون Apache POI للعمل مع مصنفات Excel. سنعرض أيضًا كيفية استخدام Apache POI لإنشاء ملف Excel وإضافة أوراق إليه باستخدام مكتبة Java هذه.

Apache Poi Java Apis للوصول إلى تنسيقات ملف Excel

يوفر Apache Poi Java API مكونات منفصلة للعمل مع تنسيقتين مختلفتين ملفات Excel. هؤلاء هم:

  1. HSSF (تنسيق جداول البيانات الرهيبة)-للعمل مع تنسيقات ملفات Excel 97-2003
  2. XSSF (تنسيق جدول بيانات XML) - للعمل مع Excel 2007 وتنسيقات الملفات لاحقًا على وجه التحديد ، يتيح لك HSSF قراءة ملفات XLS بينما يتيح لك XSSF قراءة XLS و XLSX. تتيح لك كل من واجهات برمجة التطبيقات هذه إنشاء ملفات Excel وقراءةها ومعالجتها من داخل تطبيق Java الخاص بك دون الدخول في تفاصيل تنسيقات الملفات الأساسية.

كيفية إنشاء ملف Excel XLSX في Java؟

في هذا المثال ، سوف نمر بتفاصيل استخدام Apache POI XSSF لإنشاء ملفات XLSX في تطبيق Java الخاص بنا. في هذه المرحلة ، نفترض أنك قمت بالفعل بتثبيت وتكوين APACHE POI API في تطبيق Java الخاص بك. إذا لم تكن قد فعلت ذلك ، فيمكنك زيارة تثبيت Apache POI لـ Java واتبع الخطوات.

خطوات لإنشاء Occel Workbook باستخدام Apache POI

يعد إنشاء مصنف Excel باستخدام Apache POI API لـ Java بسيطًا وسهلًا ، ويمكن تحقيقه باستخدام الخطوات التالية.

  1. قم بإنشاء مصنف باستخدام xssfworkbook فئة
  2. أغلق دفق الإخراج. رمز Java لإنشاء مصنف Excel باستخدام Apache POI كما يلي.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

سيقوم الرمز أعلاه بإنشاء مصنف Excel بتنسيق ملف XLSX. ومع ذلك ، إذا كنت ستفتح المصنف في هذه المرحلة ، فستتلقى الخطأ التالي.

والسبب في ذلك هو أن مصنف Excel الذي يستخدم Apache POI دون أي ورقة عمل يعطي هذا الخطأ. من أجل حل هذه المشكلة ، نحتاج إلى إضافة ورقة عمل واحدة على الأقل إلى ملف Excel الذي تم إنشاؤه.

أضف ورقة عمل إلى Excel Workbook مع Apache POI في Java

هذا يقودنا إلى الخطوة التي نحتاج فيها إلى إضافة ورقة عمل إلى المصنف حتى تعمل بشكل صحيح. يمكن تحقيق ذلك باستخدام كائن XSSFSheet الذي يتم إضافته إلى المصنف كما هو موضح في عينة الكود التالية.

XSSFWorkbook wb1 = new XSSFWorkbook();
try
{
	XSSFSheet sheet1 = wb1.createSheet("Ripon");
	FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
	wb1.write(fileOut);    
	fileOut.close();
}
catch(Exception ex)
{
	System.out.println("XLSX Generated Error...");
}

إكمال XSSFWorkbook مثال

الآن بعد أن رأينا كيفية إنشاء مصنف وإضافة ورقة إليها باستخدام Apache POI API لـ Java ، دعونا نلقي نظرة على كيفية إضافة صفوف وخلايا إلى ورقة العمل التي تم إنشاؤها. تحتوي فئة XSSFSheet على طريقة createrow التي تتيح لك إضافة صف إلى الورقة. هذا يعيد كائن فئة الصف الذي يمثل صفًا في ورقة عمل Excel. من أجل إنشاء خلايا في ورقة العمل ، يتعين علينا استخدام طريقة CreateCell التي تُرجع كائن من فئة XSSFCell. يتم استخدام طريقة setCellValue لـ XSSFCell لتعيين قيمة الخلية. مثال كامل على إنشاء مصنف باستخدام XSSFWorkBook ، وإضافة ورقة باستخدام XSSFSheet ، وإضافة XSSFROW إليها موضحة أدناه.

// Blank workbook
        XSSFWorkbook workbook = new XSSFWorkbook();
        // Creating a blank Excel sheet
        XSSFSheet sheet = workbook.createSheet("student Details");
        // Creating an empty TreeMap of string and Object][] type
        Map<String, Object[]> data = new TreeMap<String, Object[]>();
        // Writing data to Object[]
        // using put() method
        data.put("1", new Object[] { "ID", "CITY", "STATE" });
        data.put("2", new Object[] { 1, "Clanton", "Alabama" });
        data.put("3", new Object[] { 2, "Cordova", "Alaska" });
        data.put("4", new Object[] { 3, "Clifton", "Arizona" });
        data.put("5", new Object[] { 4, "Arcadia", "California" });
  
	// Iterating over data and writing it to sheet
	Set<String> keyset = data.keySet(); 
        int rownum = 0;
        for (String key : keyset) { 
            // Creating a new row in the sheet
            XSSFRow row = sheet.createRow(rownum++); 
            Object[] objArr = data.get(key); 
            int cellnum = 0; 
            for (Object obj : objArr) { 
                // This line creates a cell in the next column of that row
                XSSFCell cell = row.createCell(cellnum++); 
                if (obj instanceof String)
                    cell.setCellValue((String)obj); 
                else if (obj instanceof Integer)
                    cell.setCellValue((Integer)obj);
            }
        }     
        // Writing the workbook
        FileOutputStream out = new FileOutputStream("gfgcontribute.xlsx");
        workbook.write(out); 
        // Closing file output connections
        out.close();

الخاتمة

في مقالة المدونة هذه ، أظهرنا كيفية إنشاء مصنف Excel باستخدام Apache POI API لـ Java. استخدمنا XSSFWorkbook لإنشاء مصنف XLSX ، وأضفت أوراق العمل ، وأضاف صفوفًا إلى ورقة العمل ، والبيانات المأهولة بالسكان في الخلايا في ورقة العمل. لمزيد من الأمثلة على العمل مع مصنفات Excel باستخدام Apache POI لـ Java ، ترقبوا.