使用Java读取Excel文件数据

通过编程方式读取Excel数据能实现数据导入、批量处理、数据比对和更新等任务的自动化。这不仅可以提高工作效率还能减少手动处理的错误风险。此外读取的Excel数据可以与其他系统进行交互或集成,实现数据的无缝传输和共享,满足特定项目的需求。本文将从以下三个方面介绍如何通过Java读取Excel文件中的数据。

  • 读取某个单元格中的数据
  • 读取指定单元格范围的数据
  • 读取Excel工作表中的数据

安装免费Java库

操作Excel的免费Java库为 Free Spire.XLS for Java。该免费库在读写 .xls 格式的 Excel 文档时,有每个文档 5 个工作表,每个工作表 200 行的限制。但在读写 .xlsx 格式的 Excel 文档时是没有任何限制。

我么可以从下面链接下载产品包后手动引入jar包或者直接通过Maven仓库安装也可。

https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html

读取Excel数据的核心方法:

要读取Excel单元格、单元格范围、或者Excel工作表中的数据,我们需要用到Free Spire.XLS for Java库提供的以下接口:

  • Workbook 类、Worksheet类:分别用于代表 Excel 工作簿、和工作簿中的工作表。
  • CellRange类:用于代表某个特定的单元格或单元格区域。
  • Worksheet.getCellRange(String name) 方法:获取某个单元格或单元格区域并返回 CellRange 对象。
  • Worksheet.getAllocatedRange() 方法:获取工作表中包含数据的单元格区域,并返回 CellRange 对象。
  • CellRange.getValue() 方法:获取单元格中的数值或文本值。(如果单元格有公式,该方法会返回公式而不是公式计算的结果)

输入文档:

Java代码示例

示例1 :使用Java 读取某个单元格的数据

复制代码
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
 
public class ReadData {
 
    public static void main(String[] args) {
 
        //创建Workbook对象
        Workbook wb = new Workbook();
 
        //加载Excel文件
        wb.loadFromFile("货物.xlsx");
 
        //获取第一张工作表
        Worksheet sheet = wb.getWorksheets().get(0);
 
        //获取指定单元格
        CellRange cell = sheet.getCellRange("A9");
 
        //获取单元格数据
        System.out.print("A9单元格的值为 " + cell.getValue());
    }
}

读取A9单元格的值:

示例2:使用Java 读取某个单元格范围中的数据

复制代码
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
 
public class ReadData {
 
    public static void main(String[] args) {
 
        //创建Workbook对象
        Workbook wb = new Workbook();
 
        //加载Excel文件
        wb.loadFromFile("货物.xlsx");
 
        //获取第一张工作表
        Worksheet sheet = wb.getWorksheets().get(0);
 
        //获取指定单元格区域
        CellRange range = sheet.getCellRange("A11:F15");
 
        //遍历行和列
        for (int i = 0; i < range.getRows().length; i++) {
            
            for (int j = 0; j < range.getColumnCount(); j++) {
 
                //获取单元格数据
                System.out.print(range.get(i + 11, j + 1).getValue() + "  ");
            }
            System.out.println();
        }
    }
}

读取Excel单元格范围返回结果:

读取Excel工作表中的数据

复制代码
import com.spire.xls.CellRange;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
 
public class ReadData {
 
    public static void main(String[] args) {
 
        //创建Workbook对象
        Workbook wb = new Workbook();
 
        //加载Excel文件
        wb.loadFromFile("货物.xlsx");
 
        //获取第一张工作表
        Worksheet sheet = wb.getWorksheets().get(0);
 
        //获取工作表中的数据区域
        CellRange locatedRange = sheet.getAllocatedRange();
 
        //遍历行和列
        for (int i = 0; i < locatedRange.getRows().length; i++) {
 
            for (int j = 0; j < locatedRange.getColumnCount(); j++) {
 
                //获取单元格中的数据
                System.out.print(locatedRange.get(i + 1, j + 1).getValue() + "  ");
            }
            System.out.println();
        }
    }
}

读取Excel工作表数据返回结果:


通过以上示例, 我们可以通过Java编程语言来读取Excel文件,实现Excel数据的批量处理。Free Spire.XLS for Java 这个免费库还支持生成、转换、编辑、打印Excel文件等各种功能,有兴趣可前往其中文教程进行了解。

相关推荐
桦说编程1 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen1 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研1 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
没有bug.的程序员2 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋2 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国3 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~3 小时前
《设计模式》装饰模式
java·设计模式
A尘埃3 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统
青云交3 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图
CHEN5_024 小时前
【Java基础面试题】Java基础概念
java·开发语言