2020年6月是全国第19个“安全生产月”,安全月系列活动当然少不了竞赛答题。
这期,为你讲解如何将Excel数据写入PPT。
我曾经利用Ruby整理了一套题库,经过加工处理,只保留了序号、题干和正确答案。
我想准备通过现场提问的方式,搞一次竞赛答题。
这套题库总计124条数据,全手工操作,想想就头疼!!!
PPT模板里第一页设置题目,第二页设置答案,依次类推。
如果手工复制黏贴不仅容易出错还累,
一旦源题库发生改动,则需要一个一个进行核对修正,
不仅麻烦,心还很累。
我通过编写了一个程序,实现了Excel题库写入到PPT中。
下面,一起来看一下思路。
第一步,初始化。我们生成了Excel应用、PPT应用。这是一个大前提,非常重要。
第二步,批量生成幻灯片。通过循环迭代重复这2步操作,使我们形成了多页幻灯片,为我们写入PPT,创造了对象空间。
第三步,读入数组。通过worksheets(1).usedrange.value将Excel题库放入数组,等待我们下一步调用。
第四步,循环写入PPT。我们通过Pst.slides(j).shapes(1).textframe.textrange.text属性,将数组中指定元素依次写入PPT中。
require "win32ole"
Pth=File.dirname(__FILE__)
# 初始化
Eap=WIN32OLE::new("excel.application");Eap.visible=true
Ebk=Eap.workbooks.open(Pth+'/题库.xls')
Pap=WIN32OLE::new("powerpoint.application");Pap.visible=true
Pst=Pap.presentations.open(Pth+'/答题.pptx')
123.times{
Pst.slides(2).copy
Pst.slides.paste 3
Pst.slides(1).copy
Pst.slides.paste 3
}
n=Pst.slides.count
arr=Array
arr=Ebk.worksheets(1).usedrange.value
j=1
(1..n/2).each{|i|
Pst.slides(j).shapes(1).textframe.textrange.text=format("%1d",arr[i][0])+"."+arr[i][2]
Pst.slides(j+1).shapes(1).textframe.textrange.text=arr[i][3]
j+=2
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。