首页 > 编程语言 >使用Java读取Excel文件数据

使用Java读取Excel文件数据

时间:2024-01-26 15:56:47浏览次数:36  
标签:Java 读取 单元格 Excel Workbook xls

通过编程方式读取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文件等各种功能,有兴趣可前往其中文教程进行了解。

 

 

标签:Java,读取,单元格,Excel,Workbook,xls
From: https://www.cnblogs.com/Yesi/p/17989576

相关文章

  • IDEA基于maven创建Java web项目
    idea:2022.2.3 IDEA新建项目,更改项目名称,有需要的可以更改项目地址,将Buidsystem从intelliJ更改到Maven 在pom.xml中添加依赖<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><......
  • Excel表格转GDScript插件的使用 学习笔记
    【【蘩】[Godot教程]Excel表格转GDScript插件的使用】ConfigHelper导出生成在excels文件夹下。添加新的字符串。导出表格,会被忽略掉的(如注释内容)"ignore":true......
  • Java_5 字符串
    Java字符串title:(在线学习平台)link:(https://www.acwing.com/)cover:(https://cdn.acwing.com/media/activity/surface/log.png)1.字符与整数的联系——ASCII码每个常用字符都对应一个-128~127的数字,二者之间可以相互转化。注意:目前负数没有与之对应的字符。import......
  • javascript replaceall 正则表达式
    varstr="dogdogdog";varstr2=str.replace(/dog/g,"cat");console.log(str2);参考:https://www.jb51.net/article/23762.htm?tdsourcetag=s_pcqq_aiomsgstr="dogdogdog12";str=str.replace(newRegExp("[d]","g......
  • 深度解析Java8社招面试题:Lambda序列化到底行不行?
    大家好,我是小米,一个热爱技术分享的小伙伴。今天,我们来聊一个关于Java8的话题,一个颇具技术深度的问题:“社招面试题:Java8中的Lambda表达式可以序列化吗?”废话不多说,让我们一起揭开这个技术的神秘面纱!Lambda表达式的崛起在Java8之前,我们编写代码时常常要依赖匿名内部类,这使得代码显得......
  • Excel操作封装(NOPI),实体集合导出Excel,Excel读取到实体集合
      /**************************************************描述:**Author:ys*Date:2023/7/3117:45:03*Update:*************************************************/usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSyst......
  • 一个软件项目开发的流程汇总java版
    一个软件项目开发的流程汇总java版1.软件开发整体介绍软件开发流程角色分工软件环境2.xxx项目介绍项目介绍:功能架构(管理端,用户端):体现项目中的业务功能模块产品原型:用于展示项目的业务功能,一般由产品经理进行设计技术选型(用户层,网关层,应用层,数据层):展示项目中使用到的技术......
  • java 类默认构造方法
    Java类默认构造方法在学习Java面向对象编程时,我们经常会遇到类的构造方法。构造方法是一种特殊的方法,用于创建和初始化对象。当我们在定义类时没有显式地定义构造方法时,Java会为我们提供一个默认构造方法。本文将介绍Java类的默认构造方法以及其相关知识点。默认构造方法是什么......
  • java 快速删除 idea 里无效的引入
    Java快速删除IDEA里无效的引入在开发Java项目时,我们经常会使用IDE工具,比如IntelliJIDEA。IDEA会自动帮我们管理项目的依赖关系,自动引入所需的库文件。但是随着项目的不断迭代和代码的修改,有时会导致一些库文件变得无效,这给项目带来了不必要的负担。本文将介绍如何快速删......
  • java 判断数组类型
    Java判断数组类型在Java中,数组是一种特殊的数据结构,可以存储多个相同类型的元素。当我们处理数组时,有时候需要判断数组的类型,以便进行相应的操作。本文将介绍几种判断数组类型的方法,并提供相应的代码示例。1.使用instanceof运算符Java中的instanceof运算符用于判断一个对......