📜  使用 Apache POI 在Java中打开现有 Excel 工作表(1)

📅  最后修改于: 2023-12-03 14:49:37.256000             🧑  作者: Mango

使用 Apache POI 在Java中打开现有 Excel 工作表

Apache POI 是一个面向处理 Microsoft Office 文件的 Java 库。它支持多种 Office 格式,包括 Excel、Word、PowerPoint、Visio 等。在本文中,我们将重点介绍如何在 Java 中使用 Apache POI 库打开现有 Excel 工作表。

1. 引入 Apache POI 依赖

在使用 Apache POI 库之前,我们需要在项目中引入相应的依赖。以 Maven 为例,可以将以下依赖添加到 pom.xml 文件中:

<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>

其中,poi 模块提供了对 Excel 2003 格式文件(.xls)的支持,而 poi-ooxml 模块则提供了对 Excel 2007 及以上格式文件(.xlsx)的支持。根据实际需求选择引入即可。

2. 打开现有 Excel 工作表

在引入依赖之后,我们就可以开始使用 Apache POI 来打开现有的 Excel 工作表了。下面是示例代码:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelReader {
    public static void main(String[] args) throws IOException {
        String filePath = "path/to/excel/file.xlsx";
        FileInputStream inputStream = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(inputStream);
        inputStream.close();
    }
}

在上面的代码中,我们首先指定了要打开的 Excel 文件的路径。然后,使用 FileInputStream 将文件读入到内存中。最后,使用 WorkbookFactory.create 方法从文件流中创建一个 Workbook 对象即可。

需要注意的是,WorkbookFactory.create 方法会根据文件的格式自动选择对应的工作簿对象。因此,我们不需要关心文件的格式是 .xls 还是 .xlsx。

3. 获取工作表

通过上一步得到的 Workbook 对象,我们就可以轻松地获取其中的工作表了。下面是示例代码:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelReader {
    public static void main(String[] args) throws IOException {
        String filePath = "path/to/excel/file.xlsx";
        FileInputStream inputStream = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(inputStream);

        Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
        Row row = sheet.getRow(0); // 获取第一行
        Cell cell = row.getCell(0); // 获取第一个单元格的内容

        System.out.println(cell.getStringCellValue());

        inputStream.close();
    }
}

在上面的代码中,我们首先获取了工作簿中的第一个工作表,然后获取了第一行和第一个单元格的内容。最后,我们将该单元格的内容输出到了控制台上。

4. 总结

使用 Apache POI 库,在 Java 中打开现有 Excel 工作表非常简单。我们只需要引入相应的依赖,然后使用 WorkbookFactory.create 方法从文件流中创建一个 Workbook 对象即可。然后我们就可以使用 getSheetAtgetRowgetCell 等方法来获取工作表中的数据了。