Google 幻灯片和应用程序脚本:取消链接所有嵌入的 sheet 图表
Google Slides & Apps Script: Unlink all embedded sheet charts
我正在发布 Google 幻灯片,其中包含大量来自电子表格的嵌入图表。
我想取消链接嵌入的图表(从而避免在电子表格中更新数据时获得更新按钮)。
如果 google 建议通过“工具”菜单的“链接对象”条目一次更新所有元素,则没有一次性取消所有链接的选项。我需要查看每个图表并 select 取消链接。
所以我现在正在寻找编写 Google Apps 脚本的选项,但没有成功。
我在 Whosebug 上发现了一个类似的问题:
Remove all hyperlinks of a Google Slide using GAS
但是 removeLink 函数对我的图表没有任何影响。我仍然看到右上角的链接图标。
有什么想法吗?
遗憾的是,现阶段似乎没有直接从Speadsheet中去掉link to Spreadsheet的方法。但是当把Speadsheet图表中的link to Spreadsheet去掉后,发现对象变成了图片。我认为这可能用于实现您的目标。因此,针对这种情况,作为解决方法,我想提出以下示例脚本。
示例脚本:
此示例脚本将电子表格图表转换为第一张幻灯片上的图像。通过此流程,从电子表格图表到电子表格的 link 被删除。
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const charts = slide.getSheetsCharts();
const chart = charts[0];
slide.insertImage(chart.asImage().getBlob(), chart.getLeft(), chart.getTop(), chart.getWidth(), chart.getHeight());
chart.remove();
这个脚本的流程如下
- 检索电子表格图表。
- 从图表中检索图像 blob。
- 通过复制电子表格图表的大小和位置来插入图像 blob。
- 删除电子表格图表。
注:
- 此示例脚本复制大小和位置。当您要复制其他值时,请修改脚本。
参考文献:
已添加:
关于您的补充问题如下。
I think this is a good workaround for charts (such as pie charts, column ... that can be converted as images). Nevertheless, I have some slides where I have some cells embedded. Running this code on this element is displaying an issue. Do you think this also feasible on embedded tables?
图表与 table 不同。所以在这种情况下,我认为你的附加问题是新问题。
您最初的问题是从图表中删除电子表格 link。我的回答是针对你这个问题。在这种情况下,不能使用 table。而且,不幸的是,在当前阶段,没有方法可以从 table 中删除 Spreadsheet 的 link。而且,当从 table 中删除电子表格 link 时,对象类型不会从 table 中更改。这样,我的解决方法就无法使用了。但是 Slides 服务和 Slides API 现在正在增长。所以我觉得在以后的更新中可能会加入这样的方法。
那么,作为目前的方法,将您的新问题报告给Google issue tracker怎么样?至此,可以考虑增加这样的方法。
我正在发布 Google 幻灯片,其中包含大量来自电子表格的嵌入图表。 我想取消链接嵌入的图表(从而避免在电子表格中更新数据时获得更新按钮)。 如果 google 建议通过“工具”菜单的“链接对象”条目一次更新所有元素,则没有一次性取消所有链接的选项。我需要查看每个图表并 select 取消链接。
所以我现在正在寻找编写 Google Apps 脚本的选项,但没有成功。
我在 Whosebug 上发现了一个类似的问题: Remove all hyperlinks of a Google Slide using GAS
但是 removeLink 函数对我的图表没有任何影响。我仍然看到右上角的链接图标。
有什么想法吗?
遗憾的是,现阶段似乎没有直接从Speadsheet中去掉link to Spreadsheet的方法。但是当把Speadsheet图表中的link to Spreadsheet去掉后,发现对象变成了图片。我认为这可能用于实现您的目标。因此,针对这种情况,作为解决方法,我想提出以下示例脚本。
示例脚本:
此示例脚本将电子表格图表转换为第一张幻灯片上的图像。通过此流程,从电子表格图表到电子表格的 link 被删除。
const slide = SlidesApp.getActivePresentation().getSlides()[0];
const charts = slide.getSheetsCharts();
const chart = charts[0];
slide.insertImage(chart.asImage().getBlob(), chart.getLeft(), chart.getTop(), chart.getWidth(), chart.getHeight());
chart.remove();
这个脚本的流程如下
- 检索电子表格图表。
- 从图表中检索图像 blob。
- 通过复制电子表格图表的大小和位置来插入图像 blob。
- 删除电子表格图表。
注:
- 此示例脚本复制大小和位置。当您要复制其他值时,请修改脚本。
参考文献:
已添加:
关于您的补充问题如下。
I think this is a good workaround for charts (such as pie charts, column ... that can be converted as images). Nevertheless, I have some slides where I have some cells embedded. Running this code on this element is displaying an issue. Do you think this also feasible on embedded tables?
图表与 table 不同。所以在这种情况下,我认为你的附加问题是新问题。
您最初的问题是从图表中删除电子表格 link。我的回答是针对你这个问题。在这种情况下,不能使用 table。而且,不幸的是,在当前阶段,没有方法可以从 table 中删除 Spreadsheet 的 link。而且,当从 table 中删除电子表格 link 时,对象类型不会从 table 中更改。这样,我的解决方法就无法使用了。但是 Slides 服务和 Slides API 现在正在增长。所以我觉得在以后的更新中可能会加入这样的方法。
那么,作为目前的方法,将您的新问题报告给Google issue tracker怎么样?至此,可以考虑增加这样的方法。