php用wordanalysis抓取姓名_利用vba查询/抓取 外部数据
生活随笔
收集整理的這篇文章主要介紹了
php用wordanalysis抓取姓名_利用vba查询/抓取 外部数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
考慮這么一個excel文件,路徑為:"E:dataEdata.xlsx",樣式如封面圖片所示
想要在其他excel文件中,通過代碼直接抓取Edata.xlsx中想要的數據,做法如下:
- 先在Visual Basic中勾選“工具-引用-Microsoft ActiveX Data Objects”
- 然后在下面的殼子中寫入代碼
注意!!!以下代碼都要放在這個殼子中才能生效
單個表全部抓取
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 函數結果會變成這個樣子,多出現了一列姓名:
這就反應出了left join on 的特點,它是先把后面的兩個表合并,然后對合并后的表做select。下圖中黃色部分的格式就是上圖中的樣子。
如果想更好的顯示,就要對代碼進行修改:
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列數據
代碼的邏輯如上圖所示,黃色表示【data1】和【data2】union all之后的【表a】,黃色加藍色就是【表a】和【data3】left join on后的表,select函數直接作用在這個表上。
得到結果為:
總結
以上是生活随笔為你收集整理的php用wordanalysis抓取姓名_利用vba查询/抓取 外部数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 创建文件夹_Androi
- 下一篇: mapreduce原理_Hbase Bu