使用Java HSSFWorkbook读取本地Excel文件

在现代数据处理中,Excel文件(.xls)是非常常见的数据存储格式。Java中的Apache POI库可以帮助我们读取和处理Excel文件中的数据。本文将教你如何使用HSSFWorkbook来读取本地的Excel文件,并详细介绍每一个步骤。

整体流程

步骤 描述
1 导入Apache POI库
2 创建Java项目
3 编写读取Excel文件的代码
4 运行程序,验证读取的数据

第一步:导入Apache POI库

要开始,我们需要先导入Apache POI库。你可以使用Maven或直接下载JAR文件。下面是Maven的依赖配置:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- 使用最新版本 -->
</dependency>

第二步:创建Java项目

在你的IDE(如IntelliJ IDEA或Eclipse)中创建一个新的Java项目,并确保导入了上述Apache POI依赖。

第三步:编写读取Excel文件的代码

在项目中创建一个新的Java类,例如ExcelReader,并按照以下代码编写程序:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Cell;

public class ExcelReader {
    public static void main(String[] args) {
        // 指定要读取的Excel文件路径
        String filePath = "path/to/your/excel-file.xls";
        try {
            // 创建FileInputStream对象,读取Excel文件
            FileInputStream fis = new FileInputStream(filePath);
            
            // 创建HSSFWorkbook对象,这里用来处理.xls文件
            HSSFWorkbook workbook = new HSSFWorkbook(fis);
            
            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);
            
            // 遍历每一行
            for (Row row : sheet) {
                // 遍历每一列
                for (Cell cell : row) {
                    // 打印出单元格的内容
                    System.out.print(cell.toString() + "\t");
                }
                System.out.println(); // 换行
            }
            
            // 关闭工作簿和输入流
            workbook.close();
            fis.close();
            
        } catch (IOException e) {
            e.printStackTrace(); // 输出异常信息
        }
    }
}

代码解释:

  1. 导入必要的类

    • FileInputStream:用于读取文件。
    • HSSFWorkbook:Apache POI针对.xls格式的Excel文件处理类。
    • RowSheetCell:表示Excel工作表的行、表格及单元格。
  2. 设置文件路径

    • 修改filePath,将其设置为你自己Excel文件的实际路径。
  3. 读取Excel文件

    • 使用FileInputStream读取Excel文件。
    • 使用HSSFWorkbook创建工作簿对象,读取工作表数据。
  4. 遍历数据

    • 通过for each循环遍历每一行和每一个单元格,打印出单元格的内容。
  5. 关闭资源

    • 关闭工作簿和输入流,防止资源泄露。

第四步:运行程序,验证读取的数据

在IDE中运行 ExcelReader 类,控制台将打印出Excel文件中所有的内容。确保文件路径正确,且文件格式为.xls。

类与关系图

类图

classDiagram
class ExcelReader {
    + main(args: String[])
}
class FileInputStream {
    + read()
    + close()
}
class HSSFWorkbook {
    + getSheetAt(index: int): Sheet
    + close()
}
class Sheet {
    + getRow(index: int): Row
}
class Row {
    + iterator(): Iterator<Cell>
}
class Cell {
    + toString(): String
}
ExcelReader --> FileInputStream
ExcelReader --> HSSFWorkbook
HSSFWorkbook --> Sheet
Sheet --> Row
Row --> Cell

实体关系图

erDiagram
    ExcelFile {
        string path
        string name
    }
    HSSFWorkbook {
        string sheetName
    }
    Row {
        int index
    }
    Cell {
        int colIndex
        string content
    }
    
    ExcelFile ||--o{ HSSFWorkbook : contains
    HSSFWorkbook ||--o{ Row : has
    Row ||--o{ Cell : contains

结尾

通过本文的介绍,你应该掌握了如何使用Java中的HSSFWorkbook读取本地Excel文件的方法。无论是数据处理、报表生成,还是其他应用场景,这项技能都将非常有用。希望你能在今后的项目中灵活运用这些知识!如有任何疑问,请随时咨询。