📜  使用Apache POI读取和写入数据到excel文件(1)

📅  最后修改于: 2023-12-03 15:36:35.165000             🧑  作者: Mango

使用Apache POI读写Excel文件

Apache POI是一个Java库,提供API来操作Microsoft Office格式的文件,包括Excel、Word、PowerPoint等。在本文中,我们将使用Apache POI来读取和写入Excel文件。

添加Apache POI依赖

在使用Apache POI之前,需要向项目中添加相关依赖。在Maven项目中,可以通过向pom.xml文件添加如下依赖来实现:

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

说明:poi-ooxml是POI的一个子项目,提供对Office OpenXML格式文件(如XLSX、DOCX)的支持。

读取Excel文件

我们首先演示如何读取已经存在的Excel文件。以下是一个读取示例的代码:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelReader {
    public static void main(String[] args) throws IOException {
        // 打开Excel文件
        FileInputStream file = new FileInputStream(new File("example.xlsx"));
        
        // 创建一个工作簿对象
        Workbook workbook = new XSSFWorkbook(file);

        // 获取第一个工作表
        Sheet sheet = workbook.getSheetAt(0);                
        
        // 遍历每一行
        for (Row row : sheet) {
            // 遍历每一列
            for (Cell cell : row) {
                // 获取单元格的值
                String cellValue = cell.getStringCellValue();
                System.out.print(cellValue + "\t");
            }
            System.out.println();
        }
        
        // 关闭文件输入流
        file.close();
    }
}

说明:上述代码使用了Java IO API来打开Excel文件,然后使用XSSFWorkbook类创建工作簿对象。Workbook接口提供了一组操作Excel工作簿的API,而Sheet和Row接口则提供了操作工作表和行的API。

输出结果将显示Excel文件中第一个工作表中的所有值。

写入Excel文件

接下来是一个写入Excel文件的示例。以下是一个写入Excel文件的代码:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelWriter {
    public static void main(String[] args) throws IOException {
        // 创建一个工作簿对象
        Workbook workbook = new XSSFWorkbook();
        
        // 创建一个工作表
        Sheet sheet = workbook.createSheet("Sheet1");
        
        // 在工作表中创建一行
        Row row = sheet.createRow(0);
        
        // 在行中创建单元格并设置值
        Cell cell1 = row.createCell(0);
        cell1.setCellValue("姓名");
        
        Cell cell2 = row.createCell(1);
        cell2.setCellValue("年龄");
        
        Cell cell3 = row.createCell(2);
        cell3.setCellValue("城市");
        
        // 在工作表中添加多行数据
        for (int i = 1; i <= 3; i++) {
            Row newRow = sheet.createRow(i);
            Cell cellName = newRow.createCell(0);
            cellName.setCellValue("张三" + i);
            Cell cellAge = newRow.createCell(1);
            cellAge.setCellValue(i*5);
            Cell cellCity = newRow.createCell(2);
            cellCity.setCellValue("北京");
        }
        
        // 保存工作簿
        FileOutputStream file = new FileOutputStream(new File("example.xlsx"));
        workbook.write(file);
        file.close();
        
        System.out.println("Excel文件已创建!");
    }
}

说明:上述代码使用了Java IO API来创建Excel文件并打开它。然后我们使用XSSFWorkbook类创建工作簿对象并创建一个工作表。接下来我们向工作表中插入一行标题和三行数据。最后,我们调用Workbook对象的write()方法将数据写入到文件中。

结语

本文演示了如何使用Apache POI在Java中读取和写入Excel文件。通过这些例子,你可以了解如何操作Excel文件,以及如何使用POI来进行这些操作。

更多关于Apache POI的信息,你可以查阅Apache POI官方网站