open表和closed表_011 Ruby 多Word表写入Excel
生活随笔
收集整理的這篇文章主要介紹了
open表和closed表_011 Ruby 多Word表写入Excel
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Hey,最近有很多粉絲私信詢問,2020年已過半,又該統(tǒng)計(jì)半年報(bào)表信息了。
你關(guān)心的是,Ruby能否像VBA、Python一樣,
實(shí)現(xiàn)多表格快速匯總?
答案是肯定的。
這期,為你講解如何將多個(gè)Word表格匯總到Excel里。為了方便演示,我只模擬了3個(gè)Word數(shù)據(jù)文件。
001 需求分析
表格里有培訓(xùn)名稱、培訓(xùn)時(shí)間、主辦方、培訓(xùn)地點(diǎn)、培訓(xùn)內(nèi)容等項(xiàng)目。
Word表和Excel大致存儲(chǔ)原理大致相同,他們都是由一個(gè)個(gè)cell組成的,但不同的是,在Excel里單元格對(duì)象是cells,而在Word里它則變成了cell。
002 思路解析
解題思路:
第一步,通過Ruby調(diào)用Office接口,打開Word、Excel。
第二步,將Word表的指定位置數(shù)據(jù)寫入數(shù)組保存。第三步,將數(shù)組數(shù)據(jù)一次性寫入Excel保存。第四步,檢查是否存在問題,關(guān)閉相關(guān)文件。
003 代碼展示
# 初始化 require "win32ole"Pth=File.dirname(__FILE__) Eap=WIN32OLE::new("Excel.Application") Wap=WIN32OLE::new("word.Application");Wap.visible=true arr=Array.new(100){[nil]} filename=Dir.glob(Pth+'/*.doc') s=0# 提取文件 filename.each{|n|wdc=Wap.documents.open(n)t=wdc.tables.count(1..t).each{|i|# 培訓(xùn)名稱arr[s][0]=wdc.tables(i).cell(1,2).range.text.chop# 培訓(xùn)時(shí)間 arr[s][1]=wdc.tables(i).cell(1,4).range.text.chop# 主持人arr[s][2]=wdc.tables(i).cell(2,2).range.text.chop# 培訓(xùn)地點(diǎn)arr[s][3]=wdc.tables(i).cell(2,4).range.text.chop# 培訓(xùn)內(nèi)容arr[s][4]=wdc.tables(i).cell(3,2).range.text.chops+=1}# wdc.close }# 數(shù)據(jù)寫入 ebk=Eap.workbooks.open(Pth+'/匯總.xls') Eap.visible=true ebk.worksheets(1).range("a2").resize(s,5).value=arr總結(jié)
以上是生活随笔為你收集整理的open表和closed表_011 Ruby 多Word表写入Excel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python去空格的函数_Python中
- 下一篇: origin三元相图_扩增子图表解读7三