使用Java读取Excel文件,实现数据批处理

一、前言

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

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

二、免费Java库

2.1 安装:

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

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

下载免费Java Excel控件icon-default.png?t=N7T8https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html

2.2 读取Excel数据的核心方法:

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

Workbook类、Worksheet类:分别用于代表 Excel 工作簿、和工作簿中的工作表。

CellRange类:用于代表某个特定的单元格或单元格区域。

Worksheet.getCellRange(String name) 方法:获取某个单元格或单元格区域并返回 CellRange 对象。

Worksheet.getAllocatedRange() 方法:获取工作表中包含数据的单元格区域,并返回 CellRange 对象。

CellRange.getValue() 方法:获取单元格中的数值或文本值。(如果单元格有公式,该方法会返回公式而不是公式计算的结果)

三、Java代码示例

3.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单元格的值:

 

3.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 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单元格范围返回结果:

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304847.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OSPF基础

0x00 前言 本篇简述OSPF相关知识 0x01 正文 为什么需要动态路由协议 静态路由无法适应较大的网络无法动态的随着网络的变化而自动化&#xff0c;耗费人力 动态路由协议 什么是BGP协议 基于距离矢量算法修改后的算法形成协议&#xff0c;被称为路径矢量路由协议 BGP工作…

Windows高性能模式的开启

高性能模式的开启 在高性能电源模式下&#xff0c;系统会获得性能提升&#xff0c;得益于电脑中的硬件始终允许运行在较高的性能下&#xff0c;从而带动了系统性能&#xff0c;运行程序会更流畅一些。 如果是笔记本的话&#xff0c;屏幕的亮度也会在高亮度下显示&#xff0c;…

AI交互数字人怎么应用在展览展厅?

随着AIGC的迅速发展&#xff0c;AI交互数字人成为展览展厅的新流量密码。越来越多文旅品牌、博物馆展馆等通过部署AI交互数字人&#xff0c;开创全新的交互模式。 如山西博物馆上线的主题云展览《且听凤鸣》中&#xff0c;打破了常态展示模式&#xff0c;以“数字人小程序”的方…

Java字符串拼接常用方法总结

使用场景&#xff1a;用某个分隔符拼接字符串 下边是我使用过的几种方式废话不多说&#xff0c;直接上代码初始数据 1.使用流2.StringBuilder3.[StringJoiner](https://blog.csdn.net/qq_43417581/article/details/126076152?ops_request_misc%257B%2522request%255Fid%2522%2…

外汇天眼:澳大利亚金融投诉管理局在2023年收到了102,790宗投诉

在2023年&#xff0c;澳大利亚金融投诉管理局收到了来自消费者和无法与其金融公司直接解决争端的小企业的102,790宗投诉。 根据初步的数据快照&#xff0c;这相比于2022年增加了23%。 澳大利亚的金融纠纷解决方案首次在一个日历年内录得了100,000宗投诉。 “投诉升级到AFCA的…

ssm基于Vue的戏剧推广网站论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统戏剧推广信息管理难度大&#xff0c;容错率低&#xff0c…

IT行业下一个就业风口,鸿蒙开发者有多抢手?

2023年年尾&#xff0c;华为与各大应用厂商密集签约&#xff0c;使得鸿蒙操作系统再次引发关注。 2019年8月9日&#xff0c;华为消费者业务CEO余承东在华为开发者大会上发布了鸿蒙操作系统HarmonyOS&#xff0c;成为当年科技圈的爆炸性新闻。此后&#xff0c;HarmonyOS从1.0迭…

vite 搭建vue3 TS项目初始框架

目录 仓库地址&#xff1a; 一.搭建项目 1.安装 Vite&#xff1a; 2.创建 Vue 3 项目&#xff1a; 3.进入项目目录&#xff1a; 4.安装依赖&#xff1a; 5.运行项目&#xff1a; 6.流程实操 二.修改项目结构&#xff0c;显示自定义的页面 1.整理静态样式文件 1.1.在 sr…

从大到小输出三个数

写代码将三个整数数按从大到小输出。 例如&#xff1a; 输入&#xff1a;2 3 1 输出&#xff1a;3 2 1 #include <stdio.h> int main() {int a 2;int b 3;int c 1;scanf("%d%d%d",&a, &b,&c);//我们设定a最大&#xff0c;c最小if(a<b){…

用google colab t4部署phi2(公网可访问)

目录 1.打开google colab&#xff0c;配置GPU 2.ngrok获取authtoken 3.安装所需的包​编辑 4.运行推理服务&#xff0c;生成公网地址 5.client.py访问上述推理服务 6.gradio界面版 1.打开google colab&#xff0c;配置GPU 2.ngrok获取authtoken https://dashboard.ngrok…

小程序环境搭建

文章目录 小程序介绍开发环境准备注册账号获取APPID开发⼯具 第⼀个微信⼩程序打开微信开发者⼯具新建⼩程序项⽬填写项⽬信息成功 微信开发者⼯具介绍⼩程序结构⽬录⼩程序⽂件结构和传统web对⽐ ⼩程序配置⽂件全局配置 app.json页面配置sitemap 配置-了解即可 小程序介绍 开…

Centos7下升级gcc/g++版本(简单 + 避坑)

在 Centos7 下&#xff0c;使用 yum 安装高版本的 gcc/g 最简单&#xff1a; yum -y install centos-release-scl yum -y install devtoolset-11-gcc devtoolset-11-gcc-c devtoolset-11-binutils需要安装哪个个版本的gcc/g&#xff0c;就把数字替换成对应的版本号。例如上面代…

A借助AI工具提升电子邮件营销内容效果

随着互联网的普及和电子邮件的广泛应用&#xff0c;邮件营销已成为企业推广产品和服务的重要手段之一。为了提高邮件营销的效果&#xff0c;我们需要关注邮件内容的质量和吸引力。而百度文言一心等AI工具作为一款强大的在线写作工具&#xff0c;可以帮助我们提升邮件营销内容的…

MySQL运维实战(3.2) 常见数据库连接失败问题排查

作者&#xff1a;俊达 我们经常会遇到一些数据库连接失败或访问报错的问题。收集并分析具体的报错信息&#xff0c;可以帮助我们迅速定位问题。 1、客户端到服务端的网络是否畅通&#xff0c;服务端端口是否能连通。 使用ping、telnet等工具探测服务端的端口是否能访问。 […

C语言分支和循环语句

分支和循环语句 学习内容 分支语句 if switch 循环语句 while for do while goto语句 1. 什么是语句&#xff1f; C语句可分为以下五类&#xff1a; 表达式语句 函数调用语句 控制语句 复合语句 空语句 本次介绍的是控制语句。 控制语句用于控制程序的执行流程&a…

Android14之刷机模式总结(一百七十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Spring之启动过程源码

文章目录 一. Spring初始化流程二. 源码分析1. 初步分析2. 核心方法refresh() 三. 事件发布机制1. 简介2. 源码分析 一. Spring初始化流程 前面的内容我们已经把Bean的生命周期的源码已经分析完了。现在我们从容器的角度去分析源码&#xff0c;这一部分首先着重分析一下Spring…

CVE-2023-51385 OpenSSH ProxyCommand命令注入漏洞

一、背景介绍 ProxyCommand 是 OpenSSH ssh_config 文件中的一个配置选项&#xff0c;它允许通过代理服务器建立 SSH 连接&#xff0c;从而在没有直接网络访问权限的情况下访问目标服务器。这对于需要经过跳板机、堡垒机或代理服务器才能访问的目标主机非常有用。 二、漏洞简…

2024第十六届数字图像处理国际会议(ICDIP 2024) 即将召开!

第十六届数字图像处理国际会议&#xff08;ICDIP 2024&#xff09;将于2024年5月24-26日在中国海口召开。本次会议由海南大学主办&#xff0c;海南大学计算机科学与技术学院承办。ICDIP自2009年开办以来&#xff0c;已先后在新加坡、日本、中国、马来西亚理科大学等国家成功举办…

【动态规划】C++算法:403.青蛙过河

作者推荐 【动态规划】C算法312 戳气球 LeetCode:403 青蛙过河 一只青蛙想要过河。 假定河流被等分为若干个单元格&#xff0c;并且在每一个单元格内都有可能放有一块石子&#xff08;也有可能没有&#xff09;。 青蛙可以跳上石子&#xff0c;但是不可以跳入水中。 给你石子…