Java读取Excel并解析内容赋值

在日常工作中,我们经常会遇到需要读取Excel表格并解析内容的需求。Java作为一门面向对象的编程语言,通过使用POI库可以很方便地实现这一功能。本文将介绍如何使用Java读取Excel表格并解析内容,并给出相应的代码示例。

准备工作

在开始之前,我们需要准备以下环境:

  • JDK:确保已安装Java开发工具包。
  • Eclipse或其他Java开发工具:用于编写和运行Java代码。
  • Apache POI库:这是一个用于操作Microsoft Office格式文件(如Excel、Word和PowerPoint)的Java库,可以从官方网站下载并导入到Java项目中。

读取Excel表格数据

首先,我们需要通过POI库的Workbook类加载Excel表格文件,并获取需要读取的工作表。下面是一个读取Excel表格数据的示例代码:

// 导入POI库中的类
import org.apache.poi.ss.usermodel.*;

// 加载Excel文件
Workbook workbook = WorkbookFactory.create(new File("path/to/excel/file.xlsx"));

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

// 遍历工作表中的每一行数据
for (Row row : sheet) {
    // 遍历每一行中的每一格数据
    for (Cell cell : row) {
        // 获取单元格的值
        String value = cell.getStringCellValue();
        
        // 对获取的值进行处理或赋值操作
        // ...
    }
}

代码解释:

  1. 首先,我们导入了org.apache.poi.ss.usermodel包中的WorkbookSheet类,以及其他相关类。
  2. 然后,使用WorkbookFactory.create()方法加载Excel文件,需要传入Excel文件的路径。
  3. 接下来,使用getSheetAt()方法获取第一个工作表,可以根据需要获取其他工作表。
  4. 最后,通过嵌套的循环遍历工作表中的每一行和每一格数据,并使用getStringCellValue()方法获取单元格的值。

解析Excel表格数据

在读取Excel表格数据之后,我们可以根据业务需求对数据进行解析和处理。下面是一个解析Excel表格数据的示例代码:

// 假设我们需要解析的Excel表格中有两列数据:姓名和年龄
int nameColumn = 0; // 姓名所在列的索引
int ageColumn = 1; // 年龄所在列的索引

// 遍历工作表中的每一行数据
for (Row row : sheet) {
    // 获取姓名和年龄单元格的值
    String name = row.getCell(nameColumn).getStringCellValue();
    int age = (int) row.getCell(ageColumn).getNumericCellValue();
    
    // 对解析的数据进行处理或赋值操作
    // ...
}

代码解释:

  1. 首先,我们假设要解析的Excel表格中有两列数据:姓名和年龄,并分别指定了它们所在列的索引。
  2. 然后,通过row.getCell()方法获取每一行中指定列索引的单元格,并分别使用getStringCellValue()getNumericCellValue()方法获取单元格的值。
  3. 最后,对解析的数据进行处理或赋值操作,根据实际情况进行相应的逻辑处理。

示例

假设我们有一个包含学生姓名和年龄的Excel表格数据,我们需要读取并解析这些数据,并为每个学生对象赋值。下面是一个完整的示例代码:

import java.io.File;
import org.apache.poi.ss.usermodel.*;

public class ExcelReader {
    public static void main(String[] args) {
        try {
            // 加载Excel文件
            Workbook workbook = WorkbookFactory.create(new File("path/to/excel/file.xlsx"));
            
            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            
            // 姓名和年龄所在列的索引
            int nameColumn = 0;
            int ageColumn = 1;
            
            // 遍历工作表中的每一行数据
            for (Row row : sheet) {
                // 获取姓名和年龄单元格的值
                String name = row.getCell(nameColumn