Java POI导出CSV

在Java开发中,我们经常需要将数据导出为CSV格式的文件,以便进行数据分析或交换。POI是一个流行的Java库,它提供了一组API来处理各种格式的Microsoft Office文件,包括Excel。在本文中,我们将学习如何使用Java POI库来导出CSV文件。

什么是CSV?

CSV(Comma Separated Values)是一种常见的文件格式,用于存储以逗号分隔的数据。每行表示一条记录,每个字段之间用逗号分隔。CSV文件可以使用任何文本编辑器打开,并且易于读取和处理。

准备工作

在开始编写代码之前,我们需要添加POI库的依赖。我们可以使用Maven或Gradle来管理依赖关系。在这里,我们将使用Maven。

首先,在pom.xml文件中添加以下依赖:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
</dependencies>

这将下载并添加POI库到我们的项目中。

导出CSV文件

假设我们有一组学生数据,包括姓名、年龄和成绩。我们将使用POI库来将这些数据导出为CSV文件。

首先,我们需要创建一个Workbook对象,它是POI库中的一个关键类,用于表示Excel工作簿。在这里,我们将使用HSSFWorkbook,它是针对旧版本的Excel文件(.xls)的。

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class CSVExporter {

    public static void main(String[] args) {
        // 创建Workbook对象
        Workbook workbook = new HSSFWorkbook();
        
        // 创建Sheet对象
        Sheet sheet = workbook.createSheet("学生数据");
        
        // 添加表头
        Row headerRow = sheet.createRow(0);
        headerRow.createCell(0).setCellValue("姓名");
        headerRow.createCell(1).setCellValue("年龄");
        headerRow.createCell(2).setCellValue("成绩");
        
        // 添加数据行
        Row dataRow1 = sheet.createRow(1);
        dataRow1.createCell(0).setCellValue("张三");
        dataRow1.createCell(1).setCellValue(20);
        dataRow1.createCell(2).setCellValue(90);
        
        Row dataRow2 = sheet.createRow(2);
        dataRow2.createCell(0).setCellValue("李四");
        dataRow2.createCell(1).setCellValue(22);
        dataRow2.createCell(2).setCellValue(85);
        
        // 导出为CSV文件
        try (FileOutputStream fileOut = new FileOutputStream("students.csv")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // 关闭Workbook对象
        try {
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先创建了一个Workbook对象,然后创建了一个Sheet对象。接下来,我们添加了表头和数据行。最后,我们将Workbook对象写入到文件中,并关闭它。

结果

运行上面的代码后,将会在项目根目录下生成一个名为"students.csv"的CSV文件。打开这个文件,您将看到以下内容:

姓名,年龄,成绩
张三,20,90
李四,22,85

总结

在本文中,我们学习了如何使用Java POI库来导出CSV文件。我们创建了一个Workbook对象,添加了表头和数据行,并将其写入到文件中。POI库为我们提供了强大的API,使得处理Excel文件变得非常简单。希望这篇文章能帮助你在Java项目中使用POI库导出CSV文件。

参考资料

  • [Apache POI官方网站](
  • [POI - Reading and Writing Excel Files in Java](