这两天在玩数据分析,在用 Python pyecharts 生成了可交互的动态图表后,就想着怎么将这个图表给拉到PPT 里头去,毕竟一般的工作汇报什么的,都是用PPT做演示,不会说在汇报时候再打开运行程序生成图表。以下就是一段略微辛酸的历程介绍。
将动态图表放入到PPT中,有两种方式:超链接和内嵌网页。
超链接
将 pyecharts 生成的动态图表输出为 html 文件,在 PPT 中插入超链接,在展示的时候点击超链接打开网页查看。
这种方法虽然可以展示动态图表,但却是在额外的页面中打开浏览器,有些繁琐,会影响讲解PPT时的节奏。
内嵌网页
在前一方法上进行延申,直接在PPT页面里搞一个浏览器页面,无需切换到浏览器,直接在PPT中展示html中的动态图表,而且不会打乱节奏。
在 office 中有一个东西叫做宏,内嵌网页就是通过宏来实现。
操作不难,添加两个宏,写入函数和html文件路径。这里不详细说,参考以下链接就好了。
https://www.cnblogs.com/moyidou/p/15642140.html
重点是后面可能遇到的问题。
点击宏运行时提示错误,无法展示html内容
搜集对比查看了很多资料,基本都是上面的步骤就可以实现动态图表的展示,但是轮到我在播放PPT,点击控件按钮展示图表的时候,却是以下的场景。。。
运行时错误 ’-214767259 (80004005)'
方法 'Navigate' 作用于对象 'IWebBrowser2' 时失败
多次尝试后,瞬间感觉无爱,又是一次踩坑经历。。。
问题解决
在网上找了一堆似是而非的问题解决思路后,开启了辛酸的问题原因盲猜历程:
- vb插件问题
- wps office 版本问题
- PPT的格式问题
- html文件的路径问题
一顿尝试后,终于灵机一闪,将 html 文件的目录换到了E盘根目录下,再次尝试,还是报错失败,一气之下关机重启。
重启后不死心的再次尝试了一轮操作,结果居然成功了!???
顿时心潮起伏,毕竟搞了一个上午,终于好了,退出放映,重新播放,想着再次感受下这喜悦的过程,结果炸了,又不行了。。。
将PPT保存然后反复多次尝试后,终于发现了问题原因竟然是。。。
结论
能不用中文路径就别用中文
我用的是中文的用户名,所以当我将 PPT 和 html 文件保存到桌面时,运行出问题了。
显示无法访问此页,比一开始的报错要好多了,可能时软件的支持问题,不能识别到中文用户的桌面文件。导致宏运行时无法找到文件。
碰到问题重启下软件
不清楚是否是我的环境有问题,只有在第一次打开PPT进行播放时,才能正常加载展示html文件。
html文件不直接存放到桌面,就可以成功加载一次。再次播放时就会报错运行时错误。不知道有无知道如何解决的大神。
补充
对于第一个结论,尝试在桌面上创建个英文文件夹,html 放进去后,新建了个PPT,创建宏,播放,居然能正常加载了。。。
这对于中文路径的支持着实有些看不懂。