当前位置:首页 > Java

java如何读取excel数据

2026-02-04 22:16:25Java

读取Excel数据的常用方法

在Java中读取Excel数据可以通过多种库实现,以下是两种主流方式:

使用Apache POI库

Apache POI是处理Microsoft Office文件(包括Excel)的常用Java库。需添加以下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>

读取.xlsx文件的示例代码:

FileInputStream file = new FileInputStream("data.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);

Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
    Row row = rowIterator.next();
    Iterator<Cell> cellIterator = row.cellIterator();

    while (cellIterator.hasNext()) {
        Cell cell = cellIterator.next();
        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("UNKNOWN\t");
        }
    }
    System.out.println();
}
workbook.close();
file.close();

使用EasyExcel库

EasyExcel是阿里巴巴开发的Excel处理工具,适合大数据量场景,内存占用更低。添加Maven依赖:

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

实现数据读取的监听器:

public class ExcelDataListener extends AnalysisEventListener<Map<Integer, String>> {
    @Override
    public void invoke(Map<Integer, String> data, AnalysisContext context) {
        System.out.println("解析到一条数据:" + data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println("所有数据解析完成");
    }
}

调用读取方法:

EasyExcel.read("data.xlsx", new ExcelDataListener()).sheet().doRead();

性能优化建议

对于大文件(超过10万行),推荐使用:

  • POI的SXSSFWorkbook流式API
  • EasyExcel的异步读取模式
  • 设置JVM参数-Xmx1024m增加内存分配

异常处理

需处理以下常见异常:

  • IOException:文件不存在或损坏
  • IllegalStateException:单元格类型不匹配
  • EncryptedDocumentException:加密文件无法读取

java如何读取excel数据

标签: 数据java
分享给朋友:

相关文章

vue实现表格读取数据

vue实现表格读取数据

Vue 实现表格读取数据的方法 使用静态数据 静态数据可以直接在 Vue 组件的 data 中定义,并通过 v-for 指令渲染到表格中。 <template> <table…

vue实现数据

vue实现数据

Vue 实现数据绑定的方法 Vue.js 提供了多种方式实现数据绑定,包括双向绑定、单向绑定以及动态数据绑定。以下是几种常见的实现方式: 双向数据绑定(v-model) 双向数据绑定通常用于表单元…

Vue数据依赖实现

Vue数据依赖实现

Vue数据依赖实现原理 Vue的数据依赖实现基于响应式系统,核心是通过Object.defineProperty或Proxy拦截数据读写操作,结合发布-订阅模式自动追踪依赖和触发更新。 核心机制 依…

vue实现表格数据修改

vue实现表格数据修改

实现表格数据修改的基本思路 在Vue中实现表格数据修改通常涉及以下核心步骤:数据绑定、编辑状态切换、表单输入处理和数据提交。以下是一个典型实现方案: 数据绑定与渲染 使用v-for指令循环渲染表格数…

vue实现数据结构图

vue实现数据结构图

Vue 实现数据结构图的方法 使用第三方库 Vue 可以与多种图表库结合使用,例如 D3.js、ECharts 或 Vis.js。这些库提供了强大的图形渲染能力,适合展示复杂的数据结构图。 安装 E…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…