当前位置:首页 > Java

java如何读取excel文件

2026-03-03 14:45:53Java

读取Excel文件的常用方法

在Java中读取Excel文件可以通过多种库实现,以下是两种主流方案:

使用Apache POI库

Apache POI是Apache基金会提供的开源库,支持读写Microsoft Office格式文件(包括Excel)。

添加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文件示例代码:

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

public class ExcelReader {
    public static void readExcel(String filePath) throws Exception {
        Workbook workbook = WorkbookFactory.create(new FileInputStream(filePath));
        Sheet sheet = workbook.getSheetAt(0);

        for (Row row : sheet) {
            for (Cell cell : row) {
                switch (cell.getCellType()) {
                    case STRING:
                        System.out.print(cell.getStringCellValue() + "\t");
                        break;
                    case NUMERIC:
                        System.out.print(cell.getNumericCellValue() + "\t");
                        break;
                    case BOOLEAN:
                        System.out.print(cell.getBooleanCellValue() + "\t");
                        break;
                    default:
                        System.out.print("-\t");
                }
            }
            System.out.println();
        }
        workbook.close();
    }
}

使用EasyExcel库

EasyExcel是阿里开源的Excel处理工具,内存消耗更低,适合大数据量处理。

java如何读取excel文件

添加Maven依赖:

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

读取示例代码:

import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;

public class ExcelReader {
    public static void main(String[] args) {
        String fileName = "example.xlsx";

        // 创建监听器
        ExcelListener listener = new ExcelListener();

        // 读取文件
        EasyExcel.read(fileName, DemoData.class, listener).sheet().doRead();

        // 获取解析后的数据
        List<DemoData> dataList = listener.getDataList();
    }
}

// 数据模型类
class DemoData {
    private String name;
    private Double value;
    // getters/setters
}

// 自定义监听器
class ExcelListener extends AnalysisEventListener<DemoData> {
    private List<DemoData> dataList = new ArrayList<>();

    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        dataList.add(data);
    }

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

    public List<DemoData> getDataList() {
        return dataList;
    }
}

性能优化建议

对于大数据量Excel文件(超过10万行):

  • 使用POI的流式API(XSSF and SAX)
  • 优先考虑EasyExcel等内存优化方案
  • 分批次处理数据,避免一次性加载全部内容

格式处理注意事项

  • 日期类型单元格需要使用DateUtil处理
  • 公式单元格需要先评估再获取值
  • 合并单元格需要特殊处理边界情况

标签: 文件java
分享给朋友:

相关文章

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

java如何输入数据

java如何输入数据

输入数据的方法 在Java中,输入数据可以通过多种方式实现,具体取决于输入来源(如控制台、文件、网络等)。以下是几种常见的方法: 使用Scanner类从控制台输入 Scanner类是Java中最常用…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…