当前位置:首页 > Java

java如何读取excel文件

2026-02-05 03:30:05Java

使用 Apache POI 读取 Excel 文件

Apache POI 是 Java 中处理 Office 文档的流行库,支持 .xls(HSSF)和 .xlsx(XSSF)格式。

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

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

public class ExcelReader {
    public static void main(String[] args) throws Exception {
        String filePath = "example.xlsx";
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = WorkbookFactory.create(fis);
        Sheet sheet = workbook.getSheetAt(0);

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

使用 EasyExcel 读取大文件

EasyExcel 是阿里开源的库,适合处理大数据量的 Excel 文件,内存占用更低。

添加 Maven 依赖:

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

定义实体类:

@Data
public class DemoData {
    @ExcelProperty("列名1")
    private String column1;
    @ExcelProperty("列名2")
    private Integer column2;
}

监听器方式读取:

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;

public class DemoDataListener implements ReadListener<DemoData> {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        System.out.println(data);
    }

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

调用读取方法:

EasyExcel.read("large_file.xlsx", DemoData.class, new DemoDataListener())
    .sheet()
    .doRead();

处理日期和特殊格式

对于日期类型单元格,需要特殊处理:

if (cell.getCellType() == CellType.NUMERIC && DateUtil.isCellDateFormatted(cell)) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    cellValue = sdf.format(cell.getDateCellValue());
}

性能优化建议

大数据量文件建议使用流式读取模式,避免内存溢出。Apache POI 提供 SXSSFWorkbook 用于写操作,读操作可使用 XSSFReader 进行 SAX 解析。

EasyExcel 默认采用流式解析,适合处理 GB 级别的 Excel 文件,推荐在数据量超过 10 万行时使用。

java如何读取excel文件

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

相关文章

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (f…

vue实现录音文件播放

vue实现录音文件播放

实现录音文件播放的方法 在Vue中实现录音文件播放需要结合HTML5的Web Audio API或第三方库。以下是两种常见的方法: 使用HTML5 Audio元素 通过Vue动态绑定<aud…

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

jquery文件

jquery文件

jQuery文件获取与使用 jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。以下是获取和使用jQuery文件的方法。 下载jQuery文…

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。…