google-apps-script - TypeError:无法读取属性“getSelectionType”;自动调整谷歌幻灯片中插入图表的大小
问题描述
我对社区很陌生,这是我的第一个问题,请耐心等待!
我正在尝试运行一个脚本,它可以将插入的图表调整为特定的宽度/高度。我的最终目标是在按键时调整先前插入的图表的大小,但我无法到达那里,所以这是我的解决方法。
function resizeCharts() {
var selectedObjects = SlidesApp.getActivePresentation().getSelection();
if (selectedObjects.getSelectionType.CURRENT_PAGE() == SlidesApp.SelectionType.PAGE_ELEMENT) {
var pageElements = selectedObjects.getPageElementRange().getPageElements();
for (var i = 0; i < pageElements.length; i++) {
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.sheetsChart) {
pageElements[i].select(true);
var chart = pageElements[i];
var newWidth = 4.48;
var newHeight = 3.69;
chart.setWidth(newWidth).setHeight(newHeight);
var ui = SlidesApp.getUi();
pageElements[i].select(false);
}
}
}
}
但我无法解决以下错误消息:
TypeError:在重新排列图表时无法读取 null 的属性“getSelectionType”(代码:3:23)
我对谷歌应用脚本和java脚本非常陌生!任何帮助都非常感谢。谢谢你。
PS:自动调整图表大小的最有效方法是什么?有没有办法通过按键触发功能?目前,我正在按时间触发该功能。
解决方案
首先,您需要对 resizeCharts() 函数进行以下更改:
function resizeCharts() {
var selectedObjects = SlidesApp.getActivePresentation().getSelection();
if (selectedObjects.getCurrentPage() != null) {
var pageElements = selectedObjects.getPageElementRange().getPageElements();
for (var i = 0; i < pageElements.length; i++) {
if (pageElements[i].getPageElementType().toString( ) == "SHEETS_CHART") {
pageElements[i].select(true);
var chart = pageElements[i];
var newWidth = 250.48;
var newHeight = 250.48;
chart.setWidth(newWidth).setHeight(newHeight);
var ui = SlidesApp.getUi();
pageElements[i].select(false);
}
}
}
}
然后您可以将以下代码片段作为单独的函数添加到现有脚本中,以创建允许您从演示文件执行脚本的宏菜单按钮:
function onOpen(e) {
SlidesApp.getUi()
.createMenu('Resize Chart')
.addItem('Resize Selected Chart', 'resizeCharts')
.addToUi();
}
请注意,如果您希望脚本成功执行,您需要先单击要调整大小的图表。
我选择了不同的尺寸,以便图表可见。
推荐阅读
- ruby-on-rails - 在 ruby on rails 上发送电子邮件作为工作
- r - R数据框:如何对另一列中不同值的基于数据的列值进行切片
- c# - 从单个数据表中获取树形图形式的数据表
- node.js - Ejs传递的变量不显示
- spring - 引导 Spring-boot 应用程序时出错
- flutter - 将 TabBarView 中的其他选项卡更改为其他选项卡时,键盘仍然显示
- ruby-on-rails - 尝试从一个控制器插入两个表时,Rails 一直显示“UnkownAttributeError”
- python - 字符串中的递增数字 + 1
- c# - 需要 ASP.NET MVC 创建视图页面以将用户提供的信息更改为外键值
- amazon-web-services - 如何在管道堆栈创建中存储和使用参数以供以后创建无服务器堆栈