在上一篇文章中,我們介紹了Apache POI的詳細信息,Apache POI是一種開源Java API,用於使用Microsoft文件格式。在本文中,我們將瀏覽Apache POI組件,以使用Excel Workbook。我們還將展示如何使用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 可以讓您閱讀XLSXLSX2文件。這兩個API均可讓您從Java應用程序中創建,讀取和操縱Excel文件,而無需介紹基礎文件格式的詳細信息。

##如何在Java中創建Excel XLSX文件? {.wp-block頭} 在此示例中,我們將詳細介紹使用Apache POI XSSF在我們的Java應用程序中創建XLSX文件。在此階段,我們假設您已經在Java應用程序中安裝並配置了Apache POI API。如果您還沒有這樣做,則可以訪問for Java的apache poi並按照這些步驟進行操作。

###使用Apache POI {.wp-block-heading}創建Excel Workbook的步驟 使用Apache POI API為Java創建Excel工作簿非常簡​​單,可以使用以下步驟來實現。 1.使用 XSSFWorkbook 班級創建一個工作簿 2.關閉輸出流。 使用Apache POI創建Excel工作簿的Java代碼如下。

XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

上面的代碼將以XLSX文件格式創建Excel Workbook。但是,如果您在此階段打開工作簿,則將收到以下錯誤。

這樣做的原因是使用Apache POI的Excel工作簿而沒有任何工作表都會給出此錯誤。為了解決此問題,我們需要在生成的Excel文件中添加至少一個工作表。

###在Java中使用Apache POI添加工作表{.wp-block-heading} 這使我們進入了我們需要在工作簿中添加工作表以使其正常工作的步驟。這可以通過使用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示例

現在,我們已經看到瞭如何創建工作簿並使用Java的Apache POI API添加表格,讓我們看看如何在創建的工作表中添加行和單元格。 XSSFSheet類具有createrow的方法,可讓您在工作表中添加一行。這返回了代表Excel工作表中一行的行類的對象。為了在工作表中創建單元格,我們必須使用返回XSSFCELL類對象的CreateCell方法。 XSSFCELL的SetCellValue方法用於設置單元格的值。 使用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為Java創建Excel Workbook。我們使用XSSFWorkbook生成XLSX工作簿,向其添加工作表,在工作表中添加行,並在工作表中的單元格中填充數據。有關使用Apache Poi的Java使用Excel工作簿的更多示例,請繼續關注。