位置: IT常识 - 正文

一种使用Java的快速将Web中表格转换成Excel的方法(在java中有一种叫做)

编辑:rootadmin
一种使用Java的快速将Web中表格转换成Excel的方法 背景

推荐整理分享一种使用Java的快速将Web中表格转换成Excel的方法(在java中有一种叫做),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:在使用java程序设计时,可以使用的编程工具有(),在java类中,使用以下,在java语言中使用什么技术实现软件重用,可以使用java,在使用java程序设计时,可以使用的编程工具有(),在使用java程序设计时,可以使用的编程工具有(),在使用java程序设计时,可以使用的编程工具有(),在java中有一种叫做,内容如对您有帮助,希望把文章链接给更多的朋友!

        随着后疫情时代的到来,在过去的2022年,全国的经济情况,想必是很多学者和研究对象都非常关心的事。而这些数据在国家统计局网站上都有相应的记录。通过分析这些数据,可以从某一个角度来验证和观察当下的经济情况。

        全国共计有1279个县级单位已经披露了2022年GDP和一般公共预算收入数据情况,企业预警通根据这些数据整理出中国百强县gdp排行榜和百强县一般公共预算收入排行榜。其中昆山市以5006.66亿元GDP蝉联榜单榜首,江阴市、晋江市位列百强县第二三位,长沙县是湖南省唯一进入全国前十的(Top7)。来源:2023中国县城GDP百强榜揭晓 2023中国百强县排行榜一览。

         第一张图是以图片的形式发布的,第二种是采用Html的表格(table)形式展示的。在离线分析使用数据的时候非常不方便。作为程序猿,这一定难不倒您。我们可以采用网页抓取的技术对数据进行整理。本文将以Java语言为编程语言,讲解使用Jsoup对Web网页知识进行爬取,文中给出了详细的示例代码,希望对大家有帮助。

一、初识Jsoup抓取1、网页结构分析

        在使用Jsoup对页面进行抓取时,需要对网页的结构进行初步的分析,便于制定相对应的抓取策略。首先打开浏览器,输入目标网站的地址,同时打开F12进入调试,找到目标网页的元素。

         打开上面gdp百强榜表格中的div下table表格,找到如下的数据

         同理,对于一般公共预算收入的数据处理也是同样的处理办法,在此不再赘述。

二、Java开发Jsoup抓取1、引用Jsoup相关依赖包

        这里我们采用Maven的jar进行包的依赖处理管理。因此先定义Pom.xml,关键代码如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yelang</groupId><artifactId>jsoupdemo</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version></dependency></dependencies></project>2、 信息实体类的处理一种使用Java的快速将Web中表格转换成Excel的方法(在java中有一种叫做)

        对比发现两个表格处理具体的指标不一样,前面的排名和县名称,所在省份名称都是一样的。因此我们采用面向对象的设计方法对信息处理的类进行开发。相应的类图如下所示:

 3、数据采集实体package com.yelang.entity;import java.io.Serializable;import com.alibaba.excel.annotation.ExcelProperty;public class CountyBase implements Serializable {private static final long serialVersionUID = -1760099890427975758L;@ExcelProperty(value= {"序号"},index = 1)private Integer index;@ExcelProperty(value= {"县级地区"},index = 2)private String name;@ExcelProperty(value= {"所属省"},index = 3)private String province;public Integer getIndex() {return index;}public void setIndex(Integer index) {this.index = index;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public CountyBase(Integer index, String name, String province) {super();this.index = index;this.name = name;this.province = province;}public CountyBase() {super();}}

         在上面的代码中,将排序、县级地区、省作为父类抽象出来,设计两个子类:GDP类和一般公共收入类。这里需要注意的是,由于这里我们需要将采集的数据保存到本地的Excel表格中,这里我们采用EasyExcel作为技术生成组件。@ExcelProperty这个属性中,我们定义了写入的Excel表头以及具体的排序。

package com.yelang.entity;import java.io.Serializable;import com.alibaba.excel.annotation.ExcelProperty;public class Gdp extends CountyBase implements Serializable {private static final long serialVersionUID = 5265057372502768147L;@ExcelProperty(value= {"GDP(亿元)"},index = 4)private String gdp;public String getGdp() {return gdp;}public void setGdp(String gdp) {this.gdp = gdp;}public Gdp(Integer index, String name, String province, String gdp) {super(index,name,province);this.gdp = gdp;}public Gdp(Integer index, String name, String province) {super(index, name, province);}}package com.yelang.entity;import java.io.Serializable;import com.alibaba.excel.annotation.ExcelProperty;public class Gpbr extends CountyBase implements Serializable {private static final long serialVersionUID = 8612514686737317620L;@ExcelProperty(value= {"一般公共预算收入(亿元)"},index = 4)private String gpbr;// General public budget revenuepublic String getGpbr() {return gpbr;}public void setGpbr(String gpbr) {this.gpbr = gpbr;}public Gpbr(Integer index, String name, String province, String gpbr) {super(index, name, province);this.gpbr = gpbr;}public Gpbr(Integer index, String name, String province) {super(index, name, province);}} 4、实际爬取

        下面是处理GDP数据的转换代码,如果不熟悉Jsoup可以先熟悉下相关语法,如果有类似Jquery的开发经验,对于Jsoup上手非常快。

static void grabGdp() {String target = "https://www.maigoo.com/news/665462.html";try { Document doc = Jsoup.connect(target) .ignoreContentType(true) .userAgent(FetchCsdnCookie.ua[1]) .timeout(300000) .header("referer","https://www.maigoo.com") .get(); Elements elements = doc.select("#t_container > div:eq(3) table tr"); List<Gdp> list = new ArrayList<Gdp>(); for(int i = 1;i<elements.size();i++) { Element tr = elements.get(i);//获取表头 Elements tds = tr.select("td"); Integer index = Integer.valueOf(tds.get(0).text()); String name = tds.get(1).text(); String province = tds.get(2).text(); String gdp = tds.get(3).text(); Gdp county = new Gdp(index, name, province, gdp); list.add(county); } String fileName = "E:/gdptest/2023全国百强县GDP排行榜 .xlsx"; EasyExcel.write(fileName, Gdp.class).sheet("GDP百强榜").doWrite(list); System.out.println("完成...");} catch (Exception e) {System.out.println(e.getMessage());System.out.println("发生异常,继续下一轮循环");}}

         这里需要注意的是在jsoup中如何进行网页的元素定位及抓取。在上面这里,我们使用类似jquery的Dom获取方法。

Elements elements = doc.select("#t_container > div:eq(3) table tr");

        通过这一行去获取表格下的每一个tr,然后再循环每个td就可以获取对应的数据。 

三、过程分析及结果1、采集过程分析

        这里采用对源程序进行debug的方法对网页进行抽丝剥茧的分析。使用jsou进行网页模拟访问

         采用select(xxx)的方法获取页面元素,

         获取tr下的td单元格数据,

2、运行结果         

        上述代码运行完成后,在目的磁盘可以看到以下两个文件,

         打开上述两个excel文件可以看到想要采集的数据已经采集完毕,数据的顺序也是完全按照网页上的顺序来进行生成的。

 总结

        以上就是本文的主要内容。本文将以Java语言为编程语言,详细讲解了如何使用Jsoup对Web网页知识进行爬取,结合EasyExcel将网页表格转换成Excel表格,同时文中给出了详细的示例代码。由于行文仓促,难免有误,欢迎批评指正交流。

本文链接地址:https://www.jiuchutong.com/zhishi/290795.html 转载请保留说明!

上一篇:window.print() 前端实现网页打印详解(前端打印语句)

下一篇:准备搞个大动作!(准备动作怎么做)

  • ipad怎么隐藏app(ipad怎么隐藏app使用时间)

    ipad怎么隐藏app(ipad怎么隐藏app使用时间)

  • 发起直播和在线课堂有啥区别(发起直播和在线的区别)

    发起直播和在线课堂有啥区别(发起直播和在线的区别)

  • 苹果x有几款(苹果x有几款,有什么区别)

    苹果x有几款(苹果x有几款,有什么区别)

  • 快手怎么卖东西(想在快手卖东西怎么弄)

    快手怎么卖东西(想在快手卖东西怎么弄)

  • HTTP是什么意思

    HTTP是什么意思

  • 微信群聊右上角的圆圈(微信群聊右上角电脑图标)

    微信群聊右上角的圆圈(微信群聊右上角电脑图标)

  • 腾讯视频不能同时登录两个手机吗

    腾讯视频不能同时登录两个手机吗

  • 抖音私信聊天记录删了还可以恢复吗(抖音私信聊天记录怎么删除)

    抖音私信聊天记录删了还可以恢复吗(抖音私信聊天记录怎么删除)

  • 京东地址电话号码怎么显示不全(京东地址电话号码是多少)

    京东地址电话号码怎么显示不全(京东地址电话号码是多少)

  • 小米电脑截屏怎么截(小米电脑截屏怎么操作)

    小米电脑截屏怎么截(小米电脑截屏怎么操作)

  • 微信里的群公告是怎么一回事(微信里的群公告如何删除)

    微信里的群公告是怎么一回事(微信里的群公告如何删除)

  • 微信怎么充qq钱包(怎样用微信充qq钱包)

    微信怎么充qq钱包(怎样用微信充qq钱包)

  • 智能制造的特点(简述智能制造的特点)

    智能制造的特点(简述智能制造的特点)

  • 红米Note7不支持OTG(红米note7不支持微信运动?)

    红米Note7不支持OTG(红米note7不支持微信运动?)

  • 微信昵称能不能查到人(微信昵称能不能设置成动态的)

    微信昵称能不能查到人(微信昵称能不能设置成动态的)

  • 安装固态硬盘后电脑要怎么设置(安装固态硬盘后怎么设置bios)

    安装固态硬盘后电脑要怎么设置(安装固态硬盘后怎么设置bios)

  • 荣耀怎么设置备忘录提醒(荣耀怎么设置备用密码)

    荣耀怎么设置备忘录提醒(荣耀怎么设置备用密码)

  • 华为手机怎么抬起唤醒(华为手机怎么抬头唤醒)

    华为手机怎么抬起唤醒(华为手机怎么抬头唤醒)

  • 苹果云盘关掉照片会没有吗(苹果云盘关掉照片怎么关)

    苹果云盘关掉照片会没有吗(苹果云盘关掉照片怎么关)

  • 高耗电提醒怎么关闭(高耗电提醒怎么关闭vivo)

    高耗电提醒怎么关闭(高耗电提醒怎么关闭vivo)

  • 手机号占用怎么解除(手机号被占用有影响吗)

    手机号占用怎么解除(手机号被占用有影响吗)

  • 如何用WPS演示做出田字格(wps演示怎么用)

    如何用WPS演示做出田字格(wps演示怎么用)

  • 华为手机放大镜在哪(华为手机放大镜怎么打开)

    华为手机放大镜在哪(华为手机放大镜怎么打开)

  • qq密码和密保手机号都忘了怎么办(qq密码和密保手机号都被改了怎么找回来)

    qq密码和密保手机号都忘了怎么办(qq密码和密保手机号都被改了怎么找回来)

  • 苹果怎么查行货(怎么查苹果什么行)

    苹果怎么查行货(怎么查苹果什么行)

  • 个体户可选择不交税吗
  • 组成计税价格的公式
  • 门诊医保报销发票
  • 电子税务局没有发票开具
  • 投资者减除费用和工资薪金减除费用
  • 固定资产清理哪方登记增加
  • 收到存款利息怎么写分录
  • 免税发票是增值税发票吗
  • 上年结转未抵扣
  • 支付残保金分录怎么写
  • 小规模纳税人企业所得税怎么申报
  • 房地产开发企业资质等级有几个
  • 没收逾期未退包装物押金收益,应计入( )科目
  • 投标人认证证书
  • 单位租用个人住房合法吗
  • 外出采购材料分录
  • 财产租赁合同金额含税吗
  • 当年缴纳的税金怎么入账
  • 关于7.1号增值税普通发票新规
  • 公司购买商业保险如何入账
  • 员工把发票丢了怎么处理
  • 登记为一般纳税人后可以转为小规模纳税人
  • 个人所得税申请免税条件
  • 腾讯手游助手qq版本过低
  • 五险一金个人缴纳部分
  • 在window系统中哪些用户可以查看日志
  • 电脑管家游戏加速怎么卸载
  • mac安装双系统教程
  • 资不抵债从资产负债表上怎么看出来
  • win10待机屏幕图片设置
  • 企业公益性捐赠扣除限额
  • 补缴断交的医保划算吗
  • 营业外收入增加说明什么问题
  • svchost一直在下载什么
  • 房地产企业购地印花税如何入账
  • 装修材料如何入账
  • 外商投资合伙企业有哪些
  • 前端uniapp写表格
  • mac环境搭建
  • 研发支出属于哪个表
  • php签到功能思路
  • c++如何给指针赋值
  • java实现电子发票
  • linux php redis扩展
  • 农民专业合作社是企业法人吗
  • 公对公的税票是怎么个流程
  • 结转成本的会计科目
  • 接待客户的住宿费发票是开谁的
  • 进口关税如何交
  • 商品编码原则是指什么
  • 买新车检测费
  • 为什么盈利要利息呢
  • 财务费用 科目
  • 个体工商户增值税怎么计算
  • 本年利润是什么性质的科目
  • 发票做账流程
  • 公司购买不动产契税税率
  • 一般纳税人的增值税税率
  • 已认证的发票要冲红要退票吗
  • 因自然灾害发生固定资产净损失
  • 年中未分配利润
  • 公司购买防疫物资的申请
  • 出口退税转为免税做账处理
  • sql server怎么分离
  • sql查询使用临时表
  • 分页查询效率
  • Win10 Build 10565 Edge浏览器更新日志和已知问题
  • 3.0vray安装教程
  • win10专业版怎么改用户名
  • ubuntu 软件删除
  • 常用批处理命令大全
  • oracle安装使用
  • node wechat
  • shell脚本创建多级目录
  • 基于Python的图书推荐系统
  • 广东省为什么电不够用
  • 地税网上办税服务厅
  • 江西省国家税务局李德平
  • 徐州市哪些区域有疫情
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设