使用Java读取Excel文件内容的三种方法

 更新时间:2025年12月09日 10:12:47   作者:大丸子  
在日常开发中,我们常常需要读取Excel文件中的数据进行进一步处理,无论是批量导入数据、统计分析,还是自动化表格处理,Java都可以提供高效、稳定的读取方式,本文将介绍如何使用 Spire.XLS for Java 读取Excel文件中的内容,需要的朋友可以参考下

在日常开发中,我们常常需要读取Excel文件中的数据进行进一步处理。无论是批量导入数据、统计分析,还是自动化表格处理,Java都可以提供高效、稳定的读取方式。

本文将介绍如何使用 Spire.XLS for Java 读取Excel文件中的内容,涵盖从文件或流中加载、按单元格读取文本和数值、识别单元格类型以及提取公式等多种实用技巧。示例代码简单明了,适合初学者上手,也可作为构建复杂Excel处理功能的基础。

  • 方法1:从Excel文件中逐行读取所有内容
  • 方法2:通过InputStream读取Excel文件
  • 方法3:读取单元格的不同数据类型

Maven:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls.free</artifactId>
    <version>5.3.0</version>
</dependency>

方法1:从Excel文件中逐行读取所有内容

如果我们需要读取整个表格的数据,可以通过遍历工作表中所有已用单元格来获取值。

示例代码

import com.spire.xls.*;

public class ReadExcel {
    public static void main(String[] args) {
        // 创建Workbook对象并加载Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.xlsx"); // 或 "data.xls"

        // 获取第一个工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 遍历每一行每一列,读取单元格内容
        for (int i = 1; i <= sheet.getLastRow(); i++) {
            for (int j = 1; j <= sheet.getLastColumn(); j++) {
                String cellText = sheet.getCellRange(i, j).getValue();
                System.out.print(cellText + "\t");
            }
            System.out.println();
        }
    }
}

说明:

  • getCellRange(i, j).getValue() 用于获取单元格的原始字符串值。
  • 行列索引从1开始,与Excel中一致。

读取结果:

方法2:通过InputStream读取Excel文件

当Excel文件来自网络、数据库或其他流形式时,我们可以通过 InputStream 加载它,无需将文件先保存在磁盘。

示例代码

import com.spire.xls.*;
import java.io.*;

public class ReadExcelFromStream {
    public static void main(String[] args) throws FileNotFoundException {
        // 创建输入流对象
        InputStream stream = new FileInputStream("data.xlsx");

        // 加载Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromStream(stream);

        System.out.println("Load Excel file successfully.");
    }
}

说明:

  • 适用于文件上传或Web服务场景。
  • 支持 .xls 和 .xlsx 格式。

方法3:读取单元格的不同数据类型

除了文本,Excel单元格中还可能包含数字、布尔值、日期、公式等。下面示例展示如何获取各种数据类型及公式信息。

示例代码

import com.spire.xls.*;
import java.util.Date;

public class ReadCellTypes {
    public static void main(String[] args) {
        Workbook workbook = new Workbook();
        workbook.loadFromFile("data.xlsx");

        Worksheet sheet = workbook.getWorksheets().get(0);
        CellRange cell = sheet.getRange().get(2, 1); // B2

        String text = cell.getText(); // 显示文本
        String value = cell.getValue(); // 原始字符串
        Object value2 = cell.getValue2(); // 通用对象

        String formula = cell.getFormula(); // 公式内容
        String result = cell.getEnvalutedValue(); // 公式计算结果

        double number = cell.getNumberValue(); // 数值
        Date date = cell.getDateTimeValue(); // 日期
        boolean bool = cell.getBooleanValue(); // 布尔值

        System.out.println("Text: " + text);
        System.out.println("Raw Value: " + value);
        System.out.println("Formula: " + formula);
        System.out.println("Evaluated Result: " + result);
        System.out.println("Number: " + number);
        System.out.println("Date: " + date);
        System.out.println("Boolean: " + bool);
    }
}

说明:

  • .getFormula() 可提取单元格中的公式表达式。
  • .getEnvalutedValue() 返回公式的计算结果。
  • 不同类型的方法适用于不同格式的单元格。

总结

本文介绍了三种在Java中读取Excel文件的方法,涵盖了从本地文件与流中加载、按行读取数据、以及单元格类型识别等多个实用场景。通过这些技巧,我们可以轻松实现对Excel文件内容的灵活读取与后续处理。

以上就是使用Java读取Excel文件内容的三种方法的详细内容,更多关于Java读取Excel文件内容的资料请关注脚本之家其它相关文章!

相关文章

  • Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    这篇文章主要介绍了Java实现操作JSON的便捷工具类,基于重写Google的Gson实现,涉及java针对json数据的各种常见转换操作实现技巧,需要的朋友可以参考下
    2017-10-10
  • 使用spring-task定时任务动态配置修改执行时间

    使用spring-task定时任务动态配置修改执行时间

    这篇文章主要介绍了使用spring-task定时任务动态配置修改执行时间,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 详解Spring中使用xml配置bean的细节

    详解Spring中使用xml配置bean的细节

    本篇文章主要介绍了Spring中使用xml配置bean的细节,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java中方法的重写与成员变量的隐藏

    Java中方法的重写与成员变量的隐藏

    这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量),文中给大家介绍了java中的重写知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-11-11
  • Java8方法引用和构造引用代码实例

    Java8方法引用和构造引用代码实例

    这篇文章主要介绍了java8方法引用和构造引用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

    Spring Cloud 整合Apache-SkyWalking实现链路跟踪的方法

    这篇文章主要介绍了Spring Cloud 整合Apache-SkyWalking链路跟踪的示例代码,代码简单易懂,通过图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 详解J2EE开发的网站部署到阿里云服务器的方法

    详解J2EE开发的网站部署到阿里云服务器的方法

    这篇文章主要介绍了详解J2EE开发的网站部署到阿里云服务器的方法,需要的朋友可以参考下
    2018-01-01
  • Spring七大组件是哪些以及作用

    Spring七大组件是哪些以及作用

    这篇文章主要介绍了Spring七大组件是哪些以及作用,帮助刚接触spring的朋友更快理解,如果有说的不对的地方还请指正,需要的朋友可以参考下
    2023-03-03
  • Java语言实现反转链表代码示例

    Java语言实现反转链表代码示例

    这篇文章主要介绍了Java语言实现反转链表代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • MyBatis实现留言板的示例代码

    MyBatis实现留言板的示例代码

    本文主要介绍了MyBatis实现留言板的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08

最新评论