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

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

关于 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 宏的用途非常广泛,您可以按需做自定义。我们建议您充分利用我们的 API 方法,创建自己的宏。欢迎提出问题或分享您的想法,欢迎您与我们讨论、合作。祝好运!

使用 ONLYOFFICE 宏将形状替换为图表相关推荐

  1. 借助 ONLYOFFICE 宏通过 OpenAI 数据填充单元格

    AI 技术现已取得重大进展,同时也成为了颇具价值的工具,可帮助我们自动化工作流.在​​之前的帖子​​中,我们提到过可使用 OpenAI 生成文章的 ONLYOFFICE 宏.那么在本文中,我们将为您演 ...

  2. 借助 ONLYOFFICE 宏在电子表格中插入 Google 搜索结果

    网络搜索已经成为我们生活之中必不可缺的一个部分,甚至已经成为了我们的日常生活.但是,如果我们想将搜索结果存储于别处,该怎么办呢?比如存储在电子表格中-这是一种非常便捷的数据操作方式.在本文中,我们将展 ...

  3. 借助 ONLYOFFICE 宏进行去重

    在本文中,我们将介绍一个简短的宏.您可使用它来从电子表格中去掉重复项.就功能性而言,其与 Excel 中已得到广泛使用的 "去重" 宏类似.不过,由于这是一个基于 JavaScri ...

  4. 使用 ONLYOFFICE 宏借助 ChatGPT 生成文章

    AI 技术在过去几年中得到了显著提升,同时也成为了我们日常生活中必不可少的一部分.现在,我们会将这种高科技功能纳入到文档撰写过程.在本文中,我们将展示如何构建一个宏来使用 ChatGPT API 生成 ...

  5. latex使用marvosym 宏包来替换logo图标

    marvosym 宏包提供了更多的符号.比如: \Letter \Telefon \Mobilefone 打勾:  √ √ 打叉:  \texttimes \texttimes 等等. 你的tex文件 ...

  6. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库

    Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...

  7. 突出显示中奖彩票号码

    No, I've never won the lottery, but that's probably because I don't buy tickets! Your odds of winnin ...

  8. 计算机图表应用样式,将在 Microsoft Office 早期版本中创建的图表转换为 SmartArt 图形或形状...

    本文详细介绍将在 Microsoft Office 早期版本中创建的图表转换为 SmartArt 图形或形状 通过使用 Microsoft Office Excel 2007 或 Microsoft ...

  9. C++ 笔记(32)— 预处理、文件包含include、宏替换define、条件包含ifndef、define

    C/C++预处理器在源代码编译之前对其进行一些文本性质的操作. 它的主要任务包括删除注释 . 插入 #include 指令包含的文件的内容 . 定义和替换由 #defme 指令定义的符号以及确定代码的 ...

最新文章

  1. css3 自定义滚动条样式
  2. ASP.NET页面生命周期描述
  3. Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
  4. 图解ARP协议(五)免费ARP:地址冲突了肿么办?
  5. 浅谈 Vue 项目优化
  6. Python 画图常用点的形状,Matplotlib 设置参数marker的值 - o + - ★☆►◁ - 够用
  7. leetcode —— 654. 最大二叉树
  8. 在VC资源文件中加入声音资源
  9. mysql数据库技术_MySQL数据库技术(13)[组图]_MySQL
  10. L - Finding the Bases(KMP+dp)
  11. 硬件科普系列之硬盘——总线、协议、接口和固态硬盘篇
  12. 奥城大学计算机专业,美国研究生双录取的大学及可提供学位详情
  13. excel区别奇偶行(删除、过滤)
  14. java scanner close_Java Scanner close()方法
  15. grpc-go源码剖析二十之grpc客户端帧接收器是如何处理不同的帧的?
  16. 信号强度和dBm的对应关系
  17. 电脑右击新建没有Word、Excel怎么办
  18. C语言void指针的用法
  19. java 进度条时间设置_java进度条
  20. 图灵机程序(UN+1)

热门文章

  1. Win2003's Messenger服务启动 2270 错误解决方法
  2. Redis高阶使用之Redisson分布式锁源码解析
  3. mysql 闪回_MySQL Flashback 闪回功能详解
  4. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset...
  5. 春秋云镜wp day1
  6. C语言数组之指针数组和数组指针
  7. (转)用Excel编写小游戏
  8. 荒野行动服务器信息连不上,荒野行动服务器连接不上怎么办_荒野行动服务器连接不上解决方法说明_3DM手游...
  9. 正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码
  10. unpivot行转列 oracle,Oracle列转行_unpivot