word总页数不包含封面_014 Ruby PowerPoint写入Word

cebac1dda91b0e2dfa524dd891546156.png

Hey,How are you doing?

到6月份,又要写半年总结了,

很多时候,我们一般都是在Word里写总结,

但有时,我们需要汇总其他人在PPT汇报时嵌在PPT里的总结。

61e876c1d817b2f0625410610af29a84.png

这期,一起来看看,如何把内嵌在PPT里的总结写入Word。

001 需求分析

先准备一份含有内嵌文字的PPT,接着准备一个空白文档。

6c6f7bc2bba86fe532620c2b468c53a5.png

3ef89a8c49a3ca4550de08acf392eb6c.png

002 思路解析

43cd4c681334eb92779a6423c0d5e0c6.png

第一步,初始化。我们生成了Word应用、PPT应用。这是一个大前提,非常重要,同时,对自增量s,幻灯片总页数进行赋值。

第二步,批量写入Word。

通过双嵌套循环,循环读取PPT中每一页的Shape,利用slides(i).shapes(j).textframe.textrange.text将其中的文字部分写入Word段落对象。

当然,你需要先通过Wdc.paragraphs.add,创建待写入的段落对象。

你要明白,我们利用Pst.slides.count得到总页数,但无法通过Pst.slides.shapes.count得到文本框总数量。

我们退而求其次,在最外层(1..m).each{|i|}循环里,动态获取文本框数量即可。

第三步,收尾。查看生成的文件是否存在问题,没问题就保存关闭即可。

003 代码展示

require "win32ole"
Pth=File.dirname(__FILE__)
Wap=WIN32OLE::new("word.application");Wap.visible=true
Wdc=Wap.documents.open(Pth+"/汇总.doc")

Pap=WIN32OLE::new("powerpoint.application");Pap.visible=true
Pst=Pap.presentations.open(Pth+"/个人总结.pptx")

s=1
m=Pst.slides.count

(1..m).each{|i|
  n=Pst.slides(i).shapes.count
  
  (1..n).each{|j|
    Wdc.paragraphs.add
    Wdc.paragraphs(s).range.text=Pst.slides(i).shapes(j).textframe.textrange.text
    s+=1
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值