当前位置:首页 > Java

java如何读取excel

2026-03-03 00:38:10Java

读取 Excel 文件的常用方法

在 Java 中读取 Excel 文件通常使用第三方库,以下是两种主流方法:

使用 Apache POI 库

Apache POI 是处理 Microsoft Office 文件(包括 Excel)的流行库。支持 .xls(HSSF)和 .xlsx(XSSF)格式。

添加 Maven 依赖:

java如何读取excel

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

读取 .xlsx 文件示例:

try (FileInputStream file = new FileInputStream("data.xlsx");
     Workbook workbook = new XSSFWorkbook(file)) {
    Sheet sheet = workbook.getSheetAt(0);
    for (Row row : sheet) {
        for (Cell cell : row) {
            switch (cell.getCellType()) {
                case STRING -> System.out.print(cell.getStringCellValue() + "\t");
                case NUMERIC -> System.out.print(cell.getNumericCellValue() + "\t");
                case BOOLEAN -> System.out.print(cell.getBooleanCellValue() + "\t");
                default -> System.out.print("\t");
            }
        }
        System.out.println();
    }
}

使用 EasyExcel 库

EasyExcel 是阿里开源的 Excel 处理工具,适合大数据量场景,内存占用低。

java如何读取excel

添加 Maven 依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.3.2</version>
</dependency>

定义数据模型:

@Data
public class DemoData {
    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("年龄")
    private Integer age;
}

读取文件示例:

String fileName = "data.xlsx";
EasyExcel.read(fileName, DemoData.class, new AnalysisEventListener<DemoData>() {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        System.out.println(data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println("读取完成");
    }
}).sheet().doRead();

选择建议

  • 需要完整控制 Excel 各个元素时选择 Apache POI
  • 处理大数据量或简单结构数据时选择 EasyExcel
  • 考虑文件格式:.xls 只能用 HSSF(POI),.xlsx 两种库都支持

两种方式都能有效读取 Excel 内容,根据项目需求选择合适的工具即可。

标签: javaexcel
分享给朋友:

相关文章

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件读…

java面试官如何面试别人

java面试官如何面试别人

考察基础知识 从Java核心概念入手,包括面向对象特性(封装、继承、多态)、集合框架(ArrayList vs LinkedList、HashMap实现原理)、异常处理机制、多线程(线程池、锁机制)等…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…

react实现excel下载

react实现excel下载

使用 xlsx 库实现 Excel 下载 安装 xlsx 库,这是一个流行的 JavaScript 库,用于处理 Excel 文件。 npm install xlsx 创建一个函数生成 Excel…