我正在尝试构建这个系统,其中包含来自外部 Excel 文件的链接图的 PowerPoint 演示文稿。我发现我可以在 PowerPoint 中右键单击该图表,然后单击“更新链接”,该图表就会自动更新。
但如果我想要自动化怎么办?如果这可以在不创建插件的情况下完成,那就太好了。那么 PowerPoint 中有哪些事件处理程序?我认为有一个 SlideChanged 活动或其他活动?我是否可以让演示文稿无限循环并在每个新的幻灯片切换时更新链接?可能有大量的图表。图表的每个部分都有一张幻灯片。
或者,还有其他好主意吗?
我正在尝试构建的系统基本上是一个用于收集数据并以任何可能需要的形式显示数据的框架。数据自动从经济软件导入到数据库中。因此,我创建了一个命令行应用程序,它基本上打开一个 Excel 文件并运行一个宏(收集新数据并将其复制到工作表中)。该命令行应用程序设置为通过计划任务在特定时间运行。我想自动显示这些数据的图表。
事实上我自己也做了很多:)
这是 VB.NET 应用程序的代码(可以用作命令行应用程序)
Imports Microsoft.Office.Interop
Public Class Form1
Dim oPPTApp
Sub updatePPTGraph()
For Each oSlide In oPPTApp.ActivePresentation.Slides
For Each oShape In oSlide.shapes
If oShape.Type = 10 Then
oShape.LinkFormat.Update()
End If
Next
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
oPPTApp = New PowerPoint.Application
oPPTApp.visible = True
Dim oPresentation As PowerPoint.Presentation
oPresentation = oPPTApp.Presentations.Open("C:\Users\kenny\Documents\Charttest.pptx")
updatePPTGraph()
End Sub
End Class
这显然是一个开始。我需要弄清楚是否可以在幻灯片放映时完成。但我认为这应该是可能的。当我设法得到一些值得一提的东西时会更新:)
更改底层幻灯片(即从外部 Excel 应用程序)应更新正在运行的演示;正在运行的演示中的当前幻灯片通常不会显示更新,除非您强制重画,但当它再次出现在演示中时,更新应该是可见的。
总而言之,从 Excel 自动化 PPT 比让它控制事物并按需吸收更新更容易……至少会这样,除非您想包含一个加载项来处理 PPT 中的事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)