前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >013 Ruby Excel写入PowerPoint

013 Ruby Excel写入PowerPoint

原创
作者头像
职场编码
修改2020-06-24 10:07:10
7670
修改2020-06-24 10:07:10
举报
文章被收录于专栏:Ruby办公自动化Ruby办公自动化

2020年6月是全国第19个“安全生产月”,安全月系列活动当然少不了竞赛答题。

这期,为你讲解如何将Excel数据写入PPT。

001 需求分析

我曾经利用Ruby整理了一套题库,经过加工处理,只保留了序号、题干和正确答案。

我想准备通过现场提问的方式,搞一次竞赛答题。

这套题库总计124条数据,全手工操作,想想就头疼!!!

PPT模板里第一页设置题目,第二页设置答案,依次类推。

如果手工复制黏贴不仅容易出错还累,

一旦源题库发生改动,则需要一个一个进行核对修正,

不仅麻烦,心还很累。

002 思路解析

我通过编写了一个程序,实现了Excel题库写入到PPT中。

下面,一起来看一下思路。

第一步,初始化。我们生成了Excel应用、PPT应用。这是一个大前提,非常重要。

第二步,批量生成幻灯片。通过循环迭代重复这2步操作,使我们形成了多页幻灯片,为我们写入PPT,创造了对象空间。

第三步,读入数组。通过worksheets(1).usedrange.value将Excel题库放入数组,等待我们下一步调用。

第四步,循环写入PPT。我们通过Pst.slides(j).shapes(1).textframe.textrange.text属性,将数组中指定元素依次写入PPT中。

003 代码展示

代码语言:ruby
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 001 需求分析
  • 002 思路解析
  • 003 代码展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档