JAVA POI Excel读取

简介

在日常的工作和学习中,我们经常需要处理Excel文件,例如读取数据、修改数据、写入数据等。而Java开发中使用POI库可以方便地实现对Excel文件的操作。本文将介绍如何使用Java POI库来读取Excel文件中的数据。

POI库简介

Apache POI(Poor Obfuscation Implementation)是一个开源的Java库,用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。POI库提供了API来读取、写入和操作Office文件,可以实现对Excel文件的各种操作。

准备工作

在使用POI库之前,我们需要先下载并导入所需的依赖包。可以从Apache官网的POI项目中下载最新版本的POI库。下载之后,将所需的JAR文件导入到Java项目的classpath中。

读取Excel文件

下面是一个简单的示例代码,演示如何使用POI库读取Excel文件中的数据。

import java.io.File;
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) {
        try {
            // 创建文件输入流
            FileInputStream fis = new FileInputStream(new File("data.xlsx"));

            // 创建工作簿对象
            Workbook workbook = WorkbookFactory.create(fis);

            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 遍历每一行
            for (Row row : sheet) {
                // 遍历每一列
                for (Cell cell : row) {
                    // 输出单元格的值
                    System.out.println(cell.toString());
                }
            }

            // 关闭文件输入流
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,我们首先创建一个文件输入流,指定要读取的Excel文件的路径。然后使用WorkbookFactory.create方法创建一个工作簿对象。接下来,通过getSheetAt方法获取第一个工作表对象。然后,我们可以通过遍历每一行和每一列的方式来读取Excel文件中的数据。

进一步的操作

除了简单地读取数据外,POI库还提供了丰富的API来实现更多复杂的操作。下面是一些常用的操作示例:

获取单元格的值

Cell cell = row.getCell(0);
String value = cell.toString();

获取单元格的数据类型

Cell cell = row.getCell(0);
CellType cellType = cell.getCellType();

获取工作表的名称

String sheetName = sheet.getSheetName();

获取工作表的行数和列数

int rowCount = sheet.getPhysicalNumberOfRows();
int columnCount = sheet.getRow(0).getPhysicalNumberOfCells();

获取指定范围内的单元格数据

CellRangeAddress range = new CellRangeAddress(startRow, endRow, startColumn, endColumn);
for (int i = range.getFirstRow(); i <= range.getLastRow(); i++) {
    Row row = sheet.getRow(i);
    for (int j = range.getFirstColumn(); j <= range.getLastColumn(); j++) {
        Cell cell = row.getCell(j);
        String value = cell.toString();
    }
}

总结

本文介绍了如何使用Java POI库来读取Excel文件中的数据。通过POI库,我们可以方便地实现对Excel文件的各种操作,包括读取数据、修改数据和写入数据等。在实际开发中,可以根据具体需求来使用POI库的API进行操作。

参考资料

  • Apache POI官网: [
  • Apache POI文档: [

关系图如下:

erDiagram
    ENTITY "Excel文件" AS excel
    ENTITY "工作簿" AS workbook
    ENTITY "工作表" AS sheet
    ENTITY "行" AS row
    ENTITY "列" AS column
    ENTITY "单元格" AS cell

    excel -- workbook
    workbook -- sheet
    sheet