首页 > 其他分享 >使用 ONLYOFFICE 宏将形状替换为图表

使用 ONLYOFFICE 宏将形状替换为图表

时间:2022-11-23 20:09:13浏览次数:78  
标签:oChart 宏将 oSlide 图表 Api oPresentation var ONLYOFFICE 幻灯片

演示文稿已经成为我们生活的重要组成部分。无论是商务会议还是学校的项目,我们都要使用演示文稿,向观众呈现我们的想法。可是,要给演示文稿中的 100 张幻灯片调整格式,可不是件轻松的事儿。在本篇博文中,我们来向您展示如何使用 ONLYOFFICE 宏来处理这项任务。

使用 ONLYOFFICE 宏将形状替换为图表_PPT

我们小小的宏可将每张幻灯片上的形状替换为图表。在开始之前,我们先来详细说明一下这些元素的定位。与可以通过索引访问行和列的电子表格不同,我们可以仅通过其在幻灯片上的位置,即可确定演示文稿元素的位置。这些元素被放置在彼此的上面,也就意味着,我们可以通过将所有元素推入一个数组并对其进行迭代,即可定位到它们。

关于 ONLYOFFICE 宏

如果您是一名资深 Microsoft Excel 用户,那么相信您已对于 VBA 宏非常熟悉了。这些宏是帮助您自动执行日常任务的小型脚本。无论是重构数据,还是在单元格区域中插入多个值。ONLYOFFICE 宏的基础是 JavaScript 语法与文档生成器 API 方法。基于 JavaSript 的宏易于使用,具有跨平台特性且十分安全。这就使得其与 VBA 相比有着显著的优势。

ONLYOFFICE 文档免费在线宏课程

近期,我们将开始发布有关 ONLYOFFICE 解决方案的免费视频课程。首个视频课程将关注 ONLYOFFICE 文档中的宏,现已在 YouTube 上提供。

本课程分为 4 节,每节时长大约在 5-10 分钟。您将了解宏的工作原理,以及一些实际的例子。为了方便起见,我们还在视频描述中添加了时间戳 – 只需点击一下即可转到您感兴趣的主题。

阅读​​这篇文章​​,了解更多。

构建宏

这样,我们首先使用 Api.GetPresentation 方法来定位当前展示的内容:

var oPresentation = Api.GetPresentation();

然后,我们添加一个 for-loop,在演示文稿中的每张幻灯片中迭代。因此这里 i 是幻灯片的总页数。我们通过将其作为索引传递,来获取每张幻灯片:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
var oSlide = oPresentation.GetSlideByIndex(i);

然后,我们再执行 GetAllShapes 方法。它会收集幻灯片上的所有形状,并将其以阵列的形式返回:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
var oSlide = oPresentation.GetSlideByIndex(i);
var aShape = oSlide.GetAllShapes();
}

现在我们需要将形状从幻灯片中移除。形状和绘图继承相同的变量,这样我们就可以使用 Delete 方法,将形状或图片从幻灯片中移除。在我们的例子中,形状会被放置在底部。因此,我们将 0 作为索引进行 pass,移除所有底部的元素:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
var oSlide = oPresentation.GetSlideByIndex(i);
var aShape = oSlide.GetAllShapes();
aShape[0].Delete();

然后,我们通过实施 APi.CreateChart 方法来添加一个图表,在参数中指定显示的图表样式和数据:

var oChart = Api.CreateChart("bar3D", [
[200, 240, 280],
[250, 260, 280]
], ["Projected Revenue", "Estimated Costs"], [2014, 2015, 2016], 4051300, 2347595, 24);

然后,我们来设置幻灯片的大小和位置。在这个例子中,我们将图表做得更小,将其居中放置。这样,它就不会与文本相互重叠。我们会通过执行 AddObject 方法将图表插入幻灯片中:

oChart.SetSize(150 * 36000, 90 * 36000);
oChart.SetPosition(3267200, 1000000);
oSlide.AddObject(oChart);

所有的宏代码如下:

var oPresentation = Api.GetPresentation();
for (let i = 0; i < 10; i++) {
var oSlide = oPresentation.GetSlideByIndex(i);
var aShape = oSlide.GetAllShapes();
aShape[0].Delete();
var oChart = Api.CreateChart("bar3D", [
[200, 240, 280],
[250, 260, 280]
], ["Projected Revenue", "Estimated Costs"], [2014, 2015, 2016], 4051300, 2347595, 24);
oChart.SetSize(150 * 36000, 90 * 36000);
oChart.SetPosition(3267200, 1000000);
oSlide.AddObject(oChart);
}

现在,我们来运行宏,看看它是如何运行的!

使用 ONLYOFFICE 宏将形状替换为图表_macros_02

我们希望这个小巧玲珑的宏在一些单调的任务上能对您有所帮助。ONLYOFFICE 宏的用途非常广泛,您可以按需做自定义。我们建议您充分利用我们的 API 方法,创建自己的宏。欢迎提出问题或分享您的想法,欢迎您与我们讨论、合作。祝好运!

标签:oChart,宏将,oSlide,图表,Api,oPresentation,var,ONLYOFFICE,幻灯片
From: https://blog.51cto.com/u_15679924/5881695

相关文章

  • 简单的可视化图表——“饼图”
    ECharts饼图基础模板参考:https://echarts.apache.org/handbook/zh/get-started/例图:下附简单代码:letoption={//鼠标移入tooltip:{trigger:'......
  • 简单的可视化图表——“柱状图”
    ECharts柱状图基础模板参考:https://echarts.apache.org/handbook/zh/get-started/例图:下附简单代码:letoption={//1.鼠标移入tooltip:{......
  • 简单的可视化图表——“折线图”
    Examples折线图基础模板参考:https://echarts.apache.org/handbook/zh/get-started/例图:下附简单代码:varoption={//鼠标移入tooltip:{trigger......
  • echarts 图表设置默认选中
    一、数据图形import*asechartsfrom'echarts'constmyChart=echarts.init(document.querySelector('pie'))​​官方文档events​​​​官方文档action​​设置高亮m......
  • leaflet 点击图标显示echarts图表弹框
    leaflet散点图片根据官方文档我们应该都可以加载出来,点击如果想弹出简单的文本内容,title属性加载一个自定义html就可以了,但有时项目需求需要配合别的图表组件使用,简单记录......
  • echarts 图表设置默认选中
    一、数据图形import*asechartsfrom'echarts'constmyChart=echarts.init(document.querySelector('pie'))官方文档events官方文档action设置高亮myChart.d......
  • Python绘制精美可视化数据分析图表(一)-Matplotlib
    前言数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程.这一过程也是质量管理体系的支持过程.在实......
  • Zabbix5.0版本监控图表乱码问题
    Zabbix5.0管理界面提供多语种支持,切换中文可以通过如下操作完成:Usersettings→Users →Language→Chinese(zh_CN)→Update。中文界面中有一个小问题,就是汉字不能正常显......
  • 24. echarts 可以画哪些图表
    1.折线图2.柱状图3.饼图 4.地图5.雷达图 延申问题:画折线图和柱状图哪些配置可以改变样式 1.  color 设置每个数据的颜色2. grid网格设......
  • 借助 ONLYOFFICE 宏在电子表格中隐藏选择的特定行
    使用电子表格的过程中,有时我们需要将某些行隐藏起来,这样在操作规模比较大的数据块时能更加方便。在本文中,我们将向您展示如何使用一个小而精巧的ONLYOFFICE宏来实现此功能......