php用wordanalysis抓取姓名_利用vba查询/抓取 外部数据

03eba8aa1898beb60fcd2dd2cd4f5a66.png

考虑这么一个excel文件,路径为:"E:dataEdata.xlsx",样式如封面图片所示

想要在其他excel文件中,通过代码直接抓取Edata.xlsx中想要的数据,做法如下:

  • 先在Visual Basic中勾选“工具-引用-Microsoft ActiveX Data Objects”
  • 然后在下面的壳子中写入代码
Sub 抓取外部表格数据()
Dim conn As New ADODB.Connection
conn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=E:dataEdata.xlsx;extended properties=""excel 12.0;HDR=YES"""conn.Close
End Sub

注意!!!以下代码都要放在这个壳子中才能生效

单个表全部抓取

Range("a2").CopyFromRecordset conn.Execute("select * from [data1$]") 
这段代码的前半段是指 【将数据抓取到当前的单元格】中
核心是后半段,conn.Execute() 是必要的函数,先不管它
select * from [data$]:* 表示将sheet:data中的所有数据(除表头)抓取出来;$跟在sheet名后面,作为excel表的标记

为了看起来简洁,可以这样定义:

Dim sql As String
sql = "select * from [data1$]"
Range("a2").CopyFromRecordset conn.Execute(sql)

只抓取某几行

如果只想获得部分数据,比如 姓名/性别 两列,代码写为:

sql = "select 姓名,性别 from [data1$]"
Range("a2").CopyFromRecordset conn.Execute(sql) 

很朴素的语言逻辑

有条件的抓取

sql = "select * from [data1$] where 性别 = '男' "
Range("a2").CopyFromRecordset conn.Execute(sql) 

合并抓取多个表

我们注意到表data1和data2是同一种格式的表格,如果同时想要两个表的内容呢?如何把他们同时抓取并放到一起呢?

sql = "select * from [data1$] union all select * from [data2$]"
Range("a2").CopyFromRecordset conn.Execute(sql) 
union all 可以把两个表上下连接起来

类VLOOKUP查找

可以注意到data3中有前两表没有的【月薪】一列,他们之间可以靠【姓名】对应起来。那么可不可以像Excel中的VLOOKUP函数一样,通过姓名把他们的月薪查找出来呢?

sql = "select * from [data1$] left join [data3$] on [data1$].姓名 = [data3$].姓名"
Range("a2").CopyFromRecordset conn.Execute(sql)
left join on 函数

结果会变成这个样子,多出现了一列姓名:

51d89ee289f766234ab5b8cbf729dd83.png

这就反应出了left join on 的特点,它是先把后面的两个表合并,然后对合并后的表做select。下图中黄色部分的格式就是上图中的样子。

f7956a50cd8ddf34768b879d3b89f9e0.png

如果想更好的显示,就要对代码进行修改:

sql = "select [data1$].姓名,性别,年龄,月薪  from [data1$] left join [data3$] on [data1$].姓名 = [data3$].姓名" 
Range("a2").CopyFromRecordset conn.Execute(sql)

把三个表结合到一起

先UNION ALL 再 LEFT JOIN ON

sql = "select a.姓名,性别,年龄,月薪 from (select * from [data1$] union all select * from [data2$])a left join [data3$] on a.姓名=[data3$].姓名"
Range("a2").CopyFromRecordset conn.Execute(sql)

这段代码很长,让我们来捋一捋:

首先是将data1和data2(通过union all 方法) 合并成一个表,用a表示
然后将表a和data3(通过left join on方法)合并成一个表,根据姓名加入对应的月薪
对最终合并成的表提取 姓名,性别,年龄,月薪 这4列数据

0d9120fd63578dcf6586f4986a90f159.png

代码的逻辑如上图所示,黄色表示【data1】和【data2】union all之后的【表a】,黄色加蓝色就是【表a】和【data3】left join on后的表,select函数直接作用在这个表上。

得到结果为:

978685f525ad007b4efb01f585eae429.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何加速云原生数据应用?这个开源项目备受关注

简介: 自2020年9月Fluid正式对外开源,发展短短一年时间, Fluid 便一次获得两项开源界的重要认可,证明着其所专注的云原生、AI 领域也正在迎来广泛关注。这其中的意义和价值如何?我们尝试管中察豹,从 Fluid …

使用 Cilium 增强 Kubernetes 网络安全

作者 | Addo Zhang来源 | 云原生指北TL;DR在本篇,我们分别使用了 Kubernetes 原生的网络策略和 Cilium 的网络策略实现了 Pod 网络层面的隔离。不同的是,前者只提供了基于 L3/4 的网络策略;后者支持 L3/4、L7 的网络策略。通过网络策略来提升…

内含干货PPT下载|一站式数据管理DMS关键技术解读

简介: 深入解读实时数据流、库仓一体数据处理等核心技术 “数聚云端智驭未来”——阿里云数据库创新上云峰会暨第3届数据库性能挑战赛决赛颁奖典礼已圆满结束,更多干货内容欢迎大家观看峰会直播回放。 峰会直播回放📎数聚云端 智驭未来——…

好饭不怕晚,扒一下 Redis 的配置文件

作者 | 阿Q来源 | 阿Q说代码在往期的文章中我们已经对Redis的概念和基本命令进行了讲解,今天我们来看下它的配置文件,Redis的配置文件在我们的开发和实际应用中起着非常重要的作用。我们可以在安装目录下找到redis.conf配置文件,通过vim命令进…

ICBU可控文本生成技术详解

简介: 文本生成(Text Generation)是自然语言处理(Natural Language Processing,NLP)领域的一项重要且具有挑战的任务。顾名思义,文本生成任务的目的是生成近似于自然语言的文本序列,…

云拨测助力节卡机器人 全面优化海外网站性能

简介: 【案例分享云拨测】借助云拨测,节卡机器人有效挖掘性能瓶颈,经过优化,提升网站打开速度 50% 以上,提高了运营推广活动的 ROI,帮助节卡为全球用户提供更加优质的服务! 作者|白…

分享一个巨好用的 HTTP 命令行宝藏工具

作者 | Eason来源 | 程序员巴士HTTPie是一个命令行 HTTP 客户端。它的目标是使 CLI 与 Web 服务的交互尽可能人性化。HTTPie 设计用于测试、调试以及通常与 API 和 HTTP 服务器交互。http 和 https 的命令允许创建和发送任意 HTTP 请求。HTTPie 整体采用简单自然的语法&#xf…

mysql远程备份工具_innobackupex实现MySQL远程备份

一、了解innobackupex1、mysqldumpmysql逻辑备份工具,作用于服务器本地,不需要额外安装插件可以单表备份,备份为sql文件形式、方便,在多个场景通用可通过shell命令实现定时备份,但备份时如果用户有操作,容易…

技术干货 | Native 页面下如何实现导航栏的定制化开发?

简介: 通过不同实际场景的描述,供大家参考完成 Native 页面的定制化开发。 很多 mPaaS Coder 在接入 H5 容器后都会对容器的导航栏进行深度定制,本文旨在通过不同实际场景的描述,供大家参考完成 Native 页面的定制化开发。 欢迎关…

深入理解云计算OpenAPI体系

简介: 就云计算的API来看,当前并没有类似POSIX这样的API标准,基本上各大厂商各自为政。当然,有一些业界主流标准例如OAS获得多数云厂商的支持,但云厂商本身的API却往往由于历史原因、技术路线原因百花齐放,…

Gartner:2025年有效细分市场中过半企业的 IT 支出将转向云

来源 | CSDN云计算 根据Gartner的最新预测,2025年有效细分市场中的企业在公有云计算领域的IT支出将超过传统IT服务支出。 Gartner的“云迁移”研究只包括可以迁移到云的企业IT市场,即应用软件、基础设施软件、业务流程服务和系统基础设施市场。2025年在这…

阿里云容器服务全面升级为 ACK Anywhere,让云的边界拓展至企业需要的每个场景

简介: 2021 年 9 月 26 日上海阿里云计算峰会上,阿里巴巴研究员、阿里云云原生应用平台负责人丁宇宣布,阿里云容器服务全面升级为 ACK Anywhere,让企业在任何需要云的地方,都能获得一致的容器基础设施能力。 此次升级的…

Redis 突然变慢了如何排查并解决?

作者 | 码哥字节来源 | 码哥字节Redis 通常是我们业务系统中一个重要的组件,比如:缓存、账号登录信息、排行榜等。一旦 Redis 请求延迟增加,可能就会导致业务系统“雪崩”。最近遇到了一个bug,经过查找发现 Redis 报 Could not ge…

成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程

简介: 融合流量网关与微服务网关的下一代网关—云原生网关来啦!优势满满! 流量网关和微服务网关必须分开构建吗? 在容器技术和 K8s 主导的云原生时代,这个命题正浮现出新的答案。 更经济:将流量网关与微…

MongoDB 5.0新特性概览

简介: MongoDB 5.0标志着一个新的发布周期的到来,以更快地交付新特性给到用户。版本化API与在线重新分片相结合,使用户不必担心未来的数据库升级以及业务变化问题;本地原生时间序列数据平台也使MongoDB能支持更广泛的工作负载和业…

深入前端研发效能治理:数据化运营思路及其实践

简介: 数据中台前端研发无不让人厚重真实地感受到“唯一不变的是变化”。拿集团的数据资产服务平台来说,业务上经过两年的发展,已由单一的数据管理和使用平台发展成了集团具有一定规模和影响力的全域数据要素交易所,而从前端技术侧…

啥情况?为什么我的 Service 无法注入进来?

作者 | 敖丙来源 | 敖丙今天同事火急火燎的走了过来,说:快帮我看看这个错误,啥情况啊?我一看报错:Field xxxService in com.xx.xx.service.impl.XxXServiceImpl required a bean of type com.xx.xx.service.XxxService…

oracle sga pga mysql_oracle实例内存(SGA和PGA)调整-xin

一、名词解释(1)SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。(2)共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数…

IoT Studio可视化搭建平台编辑历史功能的思考与探索

简介: 在前端可视化搭建领域中“重做”和“撤销”这两个功能已经是标配中的标配,毕竟只要有用户行为的地方就可能会有出错,这两个功能无疑就是为用户提供了“后悔药”。目前有各种各样的可视化搭建平台,本文介绍IoT Studio可视化搭…

云计算架构设计6大原则,你遵循了吗?| 赠书

作者 | 吕昭波 2006年,第一个云计算(Cloud Computing)产品诞生,云计算的概念也被提出,现在云计算几乎已经渗入所有的行业和应用场景中。我们不一定能直接感受到云计算对日常生活、工作、学习的影响,但作为I…