当前位置:首页 > Java

java如何读取excel数据

2026-03-03 09:25:33Java

读取Excel数据的方法

Java读取Excel数据可以通过多种库实现,常见的有Apache POI、EasyExcel等。以下是具体实现方式:

java如何读取excel数据

使用Apache POI读取Excel

Apache POI是处理Microsoft Office文件格式的Java库,支持.xls和.xlsx格式。

java如何读取excel数据

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

public class ExcelReader {
    public static void readExcel(String filePath) throws IOException {
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = new XSSFWorkbook(fis); // 对于.xlsx文件
        // 对于.xls文件使用: Workbook workbook = new HSSFWorkbook(fis);

        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();
        fis.close();
    }
}

使用EasyExcel读取Excel

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

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import java.util.ArrayList;
import java.util.List;

public class ExcelReader {
    public static void readExcel(String filePath) {
        List<Object> dataList = new ArrayList<>();
        EasyExcel.read(filePath, new ReadListener<Object>() {
            @Override
            public void invoke(Object data, AnalysisContext context) {
                dataList.add(data);
                System.out.println(data);
            }

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

处理大数据量的优化方法

当处理大型Excel文件时,需要注意内存优化:

  • 使用事件模型(SAX方式)而非DOM方式
  • 分批处理数据,避免一次性加载全部数据
  • 对于Apache POI,可以使用SXSSFWorkbook处理.xlsx文件
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;

public class LargeExcelReader {
    public static void readLargeExcel(String filePath) throws IOException {
        FileInputStream fis = new FileInputStream(filePath);
        Workbook workbook = new SXSSFWorkbook(new XSSFWorkbook(fis), 100); // 设置rowAccessWindowSize
        // 后续读取逻辑与普通Workbook相同
    }
}

注意事项

  • 不同Excel版本(.xls和.xlsx)需要使用不同的POI类处理
  • 读取时注意单元格数据类型,避免类型转换错误
  • 资源使用后要及时关闭,防止内存泄漏
  • 对于复杂格式的Excel文件,可能需要特殊处理合并单元格等特性

以上方法涵盖了Java读取Excel的主要场景,可以根据具体需求选择合适的库和实现方式。

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

相关文章

vue怎么实现数据

vue怎么实现数据

Vue 数据实现方法 Vue 提供了多种方式来实现数据的绑定和管理,核心是通过响应式系统确保数据与视图的同步。以下是常见的实现方法: 数据绑定 在 Vue 实例的 data 选项中定义数据,Vue…

如何使用java

如何使用java

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

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

java如何实现异步

java如何实现异步

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