使用POI导出Excel工具类

在Java开发中,经常会遇到需要将数据导出到Excel文件的需求。Apache POI是一个流行的Java库,可以方便地操作Excel文件。本文将介绍如何使用POI导出Excel,并提供一个简单的工具类示例。

什么是POI?

POI全称为“Poor Obfuscation Implementation”,是Apache基金会的一个开源项目,提供了处理Microsoft Office格式文件的Java API。POI库提供了对Word、Excel和PowerPoint等文件格式的支持。在本文中,我们将重点介绍POI在Excel文件处理方面的应用。

导出Excel的基本原理

要导出Excel文件,我们需要使用POI库提供的API操作Excel工作簿(Workbook)、工作表(Worksheet)和单元格(Cell)。通常的流程如下:

  1. 创建一个工作簿对象(Workbook)。
  2. 创建一个工作表对象(Worksheet)。
  3. 创建行对象(Row),并在该行上创建单元格(Cell)。
  4. 设置单元格的值、样式等属性。
  5. 重复步骤3和4,填充工作表。
  6. 将工作表写入工作簿。
  7. 保存工作簿为Excel文件。

现在,我们来看一下如何使用POI导出Excel文件的代码示例。

POI导出Excel工具类示例

下面是一个简单的POI导出Excel工具类的示例代码:

import org.apache.poi.ss.usermodel.*;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

public class ExcelExporter {

    public static void export(List<List<Object>> data, String filePath) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        int rowNum = 0;
        for (List<Object> rowData : data) {
            Row row = sheet.createRow(rowNum++);

            int colNum = 0;
            for (Object cellData : rowData) {
                Cell cell = row.createCell(colNum++);

                if (cellData instanceof String) {
                    cell.setCellValue((String) cellData);
                } else if (cellData instanceof Integer) {
                    cell.setCellValue((Integer) cellData);
                } else if (cellData instanceof Double) {
                    cell.setCellValue((Double) cellData);
                }
            }
        }

        try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        List<List<Object>> data = List.of(
                List.of("Name", "Age", "Score"),
                List.of("John Doe", 25, 85.5),
                List.of("Jane Smith", 30, 92.0)
        );

        String filePath = "output.xlsx";
        export(data, filePath);

        System.out.println("Excel exported successfully to " + filePath);
    }
}

上述代码中的export方法接受一个包含数据的二维列表和文件路径作为参数。它会创建一个新的工作簿,并在工作簿中创建一个名为"Sheet1"的工作表。然后,它会迭代二维列表中的数据,逐行逐列地填充工作表中的单元格。最后,它将工作簿写入文件中。

main方法中,我们创建了一个包含示例数据的二维列表,并将其导出到名为"output.xlsx"的Excel文件中。运行代码后,你将看到一个成功导出Excel文件的消息。

总结

本文介绍了如何使用POI库导出Excel文件,并提供了一个简单的工具类示例。通过POI的丰富API,我们可以轻松地操作Excel文件的工作簿、工作表和单元格,实现定制化的数据导出功能。希望本文对你在Java开发中使用POI导出Excel文件有所帮助!