gpt4 book ai didi

python - Google Slide API - 如何多次复制一张幻灯片并每次创建一个唯一的对象 ID

转载 作者:行者123 更新时间:2023-12-01 00:16:41 26 4
gpt4 key购买 nike

总的来说,我希望人们将一些数据放入谷歌工作表中并提供一个按钮,该按钮获取数据并自动填充预制的谷歌幻灯片。我选择了复制主幻灯片,然后用数据替换单个文本模块的方法。有更好的方法来实现我的目标吗?

这是主幻灯片

Master-Slide

这是我用于复制的代码,但它只能复制主幻灯片一次,因为它创建的 objectId 始终相同:“copiedSlide_001”。我尝试使用随机整数作为 objectId,但无法正常工作。另外,我想该名称必须是可预测的才能在下一步中使用。 (将数据导入到新复制的幻灯片中)。

function duplicateSlide() {  

var presentationId = "1XLtOv7FHWwv6R2QEZF_LEhF7twXTlY3IbvsVDKxdDtc";
var pageId = "g75e5d89173_0_0"
var requests = [{

"duplicateObject": {
"objectId": pageId,
"objectIds": {
"g75e5d89173_0_0": "copiedSlide_001",

}
}
} ]Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
}

如何让复制过程对我有利?

非常感谢任何帮助!

最佳答案

  • 您想要在 Google 幻灯片中多次复制母版幻灯片。
  • 您希望为每张复制的幻灯片提供唯一的对象 ID,例如 copiedSlide_001
    • 在复制之前,您需要知道所复制幻灯片的对象 ID。
  • 您希望使用 Google Apps 脚本来实现此目的。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能答案之一。

修改点:

  • 在此修改中,它使用batchUpdate方法请求多个DuplicateObjectRequest。

修改后的脚本:

运行脚本之前,请在高级 Google 服务中启用 Slides API。

function duplicateSlide() {
var presentationId = "1XLtOv7FHWwv6R2QEZF_LEhF7twXTlY3IbvsVDKxdDtc"; // Please set the Slides ID.
var pageId = "g75e5d89173_0_0"; // Please set the page ID of the source slide.
var newIDs = ["copiedSlide_001", "copiedSlide_002", "copiedSlide_003"]; // Please set the unique ID here.

var requests = newIDs.reverse().map(function(id) {
var obj = {};
obj[pageId] = id;
return {duplicateObject: {objectId: pageId, objectIds: obj}};
});
// requests.push({deleteObject: {objectId: pageId}});
Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
}
  • 当您运行脚本时,作为测试用例,源幻灯片将被复制 3 次。每个对象ID分别是“copiedSlide_001”、“copiedSlide_002”和“copiedSlide_003”。
    • 第 2、第 3 和第 4 页的页面 ID 分别为“copiedSlide_001”、“copiedSlide_002”和“copiedSlide_003”。
  • 如果您使用 requests.push({deleteObject: {objectId: pageId}});,复制完成后,第一页(即源幻灯片)将被删除。但我不确定这是否是你想要的结果。所以我把它作为注释放在脚本中。

引用文献:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

关于python - Google Slide API - 如何多次复制一张幻灯片并每次创建一个唯一的对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com