在上一篇文章中,我们介绍了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文件?

在此示例中,我们将详细介绍使用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 Workbook的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添加工作表

这使我们进入了我们需要在工作簿中添加工作表以使其正常工作的步骤。这可以通过使用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工作簿的更多示例,请继续关注。