در مقاله قبلی ما ، جزئیات Apache Poi ، یک API جاوا منبع باز را برای کار با قالب های فایل مایکروسافت انجام دادیم. در این مقاله ، ما برای همکاری با کتابهای کاری Excel از مؤلفه Apache POI عبور خواهیم کرد. ما همچنین نحوه استفاده از Apache POI را برای ایجاد یک فایل اکسل و اضافه کردن برگه به ​​آن با استفاده از این کتابخانه جاوا نشان خواهیم داد.

apache poi java apis برای دسترسی به قالب های پرونده اکسل

Apache Poi Java API اجزای جداگانه ای را برای کار با دو قالب مختلف پرونده اکسل فراهم می کند. اینها هستند:

  1. HSSF (قالب صفحه گسترده وحشتناک)-برای کار با قالب های پرونده اکسل 97-2003
  2. XSSF (قالب صفحه گسترده XML) - برای کار با قالب های اکسل 2007 و بعدی پرونده به طور خاص ، HSSF به شما امکان می دهد پرونده های XLS را بخوانید در حالی که XSSF به شما امکان می دهد XLS و XLSX را بخوانید. هر دو این API ها به شما امکان می دهند پرونده های اکسل را از داخل برنامه جاوا خود ایجاد ، بخوانید و دستکاری کنید بدون اینکه به جزئیات قالب های فایل اساسی بپردازید.

چگونه پرونده اکسل xlsx را در جاوا ایجاد کنیم؟

در این مثال ، ما جزئیات استفاده از Apache Poi XSSF را برای ایجاد پرونده های XLSX در برنامه جاوا خود می گذرانیم. در این مرحله ، فرض می کنیم که شما قبلاً Apache POI API را در برنامه جاوا خود نصب و پیکربندی کرده اید. اگر این کار را نکرده اید ، می توانید به [نصب Apache POI برای جاوا] مراجعه کنید و مراحل را دنبال کنید.

مراحل ایجاد کتاب کار اکسل با استفاده از Apache Poi

ایجاد یک کتاب کار اکسل با استفاده از Apache Poi API برای جاوا ساده و آسان است و با استفاده از مراحل زیر قابل دستیابی است.

  1. با استفاده از کلاس xssfworkbook کتاب کار ایجاد کنید
  2. جریان خروجی را ببندید. کد جاوا برای ایجاد کتاب کار اکسل با استفاده از Apache Poi به شرح زیر است.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

کد فوق یک کتاب کار اکسل در قالب پرونده XLSX ایجاد می کند. با این حال ، اگر در این مرحله کتاب کار را باز کنید ، خطای زیر را دریافت خواهید کرد.

دلیل این امر این است که یک کتاب کار اکسل با استفاده از Apache POI بدون هیچ گونه برگه این خطا را ایجاد می کند. برای حل این مشکل ، باید حداقل یک کاربرگ را به پرونده اکسل تولید شده اضافه کنیم.

اضافه کردن کاربرگ به کتاب کار با Apache Poi در جاوا

این ما را به مرحله ای می رساند که باید یک برگه کار به کتاب کار اضافه کنیم تا به درستی کار کند. این امر می تواند با استفاده از شیء 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 برای جاوا اضافه کنیم ، نگاهی بیندازیم که چگونه ردیف ها و سلول ها را به برگه ایجاد شده اضافه خواهیم کرد. کلاس XSSFSheet دارای روش روشنایی است که به شما امکان می دهد یک ردیف را به ورق اضافه کنید. این یک شیء از کلاس ردیف را برمی گرداند که یک ردیف در صفحه اکسل را نشان می دهد. برای ایجاد سلول در صفحه کار ، باید از روش 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();

نتیجه گیری

در این مقاله وبلاگ ، ما نحوه ایجاد یک کتاب کار اکسل را با استفاده از Apache Poi API برای جاوا نشان دادیم. ما از XSSFworkbook برای تولید یک کتاب کار XLSX استفاده کردیم ، برگه های اضافه شده به آن اضافه کردیم ، ردیف ها را به صفحه کار اضافه کردیم و داده های پرجمعیت را در سلولها در صفحه کار قرار دادیم. برای مثال های بیشتر از کار با کتابهای کاری اکسل با استفاده از Apache Poi برای جاوا ، با ما در ارتباط باشید.