Java读取CSV文件数据写入Excel

在日常的数据处理工作中,我们经常会遇到需要将CSV文件中存储的数据转换为Excel格式的需求。Java作为一种强大的编程语言,提供了丰富的库和工具,以便于我们处理各种数据格式。本文将介绍如何使用Java读取CSV文件数据,并将其写入Excel文件中。

CSV文件简介

CSV(Comma-Separated Values)是一种常见的文件格式,用于存储和交换表格数据。它由纯文本组成,每行表示一条记录,每个字段之间使用逗号进行分隔。CSV文件具有以下特点:

  • 纯文本格式,易于阅读和编辑。
  • 可以使用逗号、分号或制表符进行字段分隔。
  • 可以包含引号以包裹包含分隔符的字段值。
  • 不支持复杂的数据类型、格式或公式。

CSV文件通常用于数据导出、数据备份和数据迁移等场景。在许多情况下,我们需要将CSV文件中的数据转换为Excel格式,以便于进一步的数据分析和处理。

读取CSV文件数据

Java提供了多种方法读取CSV文件的数据,包括使用原生Java IO、Apache Commons CSV等库。下面将以使用Apache Commons CSV库为例,演示如何读取CSV文件的数据。

首先,我们需要在项目中添加Apache Commons CSV库的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.8</version>
</dependency>

读取CSV文件的代码示例如下:

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class CSVReader {

    public static void main(String[] args) {
        try {
            Reader reader = new FileReader("data.csv");
            CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT);

            for (CSVRecord csvRecord : csvParser) {
                String name = csvRecord.get(0);
                int age = Integer.parseInt(csvRecord.get(1));
                String email = csvRecord.get(2);

                System.out.println("Name: " + name);
                System.out.println("Age: " + age);
                System.out.println("Email: " + email);
            }

            csvParser.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码使用CSVParser类从CSV文件中解析数据,并逐行读取CSV记录。对于每一行记录,我们可以通过get()方法获取相应字段的值。在这个例子中,我们假设CSV文件的第一列是姓名,第二列是年龄,第三列是电子邮件。

写入Excel文件

在读取CSV文件数据后,我们可以使用Java提供的Excel库来将数据写入Excel文件。在本文中,我们将使用Apache POI库来处理Excel文件。

首先,我们需要在项目中添加Apache POI库的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖:

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

接下来,我们可以使用以下代码示例将CSV数据写入Excel文件:

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

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

public class ExcelWriter {

    public static void main(String[] args) {
        try (Workbook workbook = new XSSFWorkbook()) {
            Sheet sheet = workbook.createSheet("Data");

            // 创建表头
            Row headerRow = sheet.createRow(0);
            headerRow.createCell(0).setCellValue("Name");
            headerRow.createCell(1).setCellValue("Age");
            headerRow.createCell(2).setCellValue("Email");

            // 写入数据
            Row dataRow = sheet.createRow(1);
            dataRow.createCell(0).setCellValue("John Doe");
            dataRow.createCell(1).setCellValue(30);
            dataRow.createCell(