首页 文章

通过Apps脚本在Google幻灯片上刷新Google表格数据

提问于
浏览
-3

我们目前正在尝试自动化Google幻灯片和Google表格之间的数据“更新” . 目前在Google幻灯片中,我有来自Google表格的导入链接表格 . 我希望有可能通过Apps脚本触发数据更新,但很难让它工作 . 它似乎可以通过API,但不一定通过Apps脚本 .

有没有人有办法解决吗?

谢谢

1 回答

  • 1

    我刚刚开始学习这件事 .

    我一直在使用只有图像和文本的幻灯片演示文稿,这是我昨天写的一个函数,用来获取我想知道如何更新的文本的objectId .

    function logSlidesAndElements() {
      var presentationId='presentationID';
      var presentation=Slides.Presentations.get(presentationId);
      var slides=presentation.slides
      var s='';
      var br='
    '; s+=br + Utilities.formatString('The presentation contains %s slides:', slides.length); for (var i=0;i<slides.length;i++) { s+=br + Utilities.formatString('slides[%s].objectId=%s',i,slides[i].objectId); for(var j=0;j<slides[i].pageElements.length;j++) { s+=br + Utilities.formatString('slides[%s].pageElements[%s].objectId: %s',i,j,slides[i].pageElements[j].objectId); if(typeof(slides[i].pageElements[j].description)!='undefined') { s+=br + Utilities.formatString('slides[%s].pageElement[%s]=%s',i,j,(typeof(slides[i].pageElements[j].description)!='undefined')?slides[i].pageElements[j].description:''); } if(slides[i].pageElements[j].shape && slides[i].pageElements[j].shape.shapeType && slides[i].pageElements[j].shape.shapeType=='TEXT_BOX') { if(slides[i].pageElements[j].shape && slides[i].pageElements[j].shape.text && slides[i].pageElements[j].shape.text.textElements.length) { for(var k=0;k<slides[i].pageElements[j].shape.text.textElements.length;k++) { if(slides[i].pageElements[j].shape.text.textElements[k] && slides[i].pageElements[j].shape.text.textElements[k].textRun && slides[i].pageElements[j].shape.text.textElements[k].textRun.content) { s+=br + Utilities.formatString('slides[%s].pageElements[%s].shape.text.textElements[%s].textRun.content=%s',i,j,k,slides[i].pageElements[j].shape.text.textElements[k].textRun.content); s+=br + Utilities.formatString('slides[%s].pageElements[%s].objectId: %s',i,j,slides[i].pageElements[j].objectId); } } } } if(slides[i].pageElements[j].image) { s+=br + Utilities.formatString('slides[%s].pageElements[%s].objectId: %s',i,j,slides[i].pageElements[j].objectId); } } s+=br; } var ui=HtmlService.createHtmlOutput(s).setWidth(1000).setHeight(450); SpreadsheetApp.getUi().showModelessDialog(ui, 'HillViewDental Presentation'); }

    我在API资源管理器中学习了很多关于如何设置请求的知识,并且今天早上开始取得了一些成功 . 我能够删除一张幻灯片的所有文本,并用这两个函数替换它 .

    function insertText()
    {
      Slides.Presentations.batchUpdate({"requests": [{"insertText": {"objectId": "g24899cf468_0_47","insertionIndex": 0,"text": "This is going to slide 3"}}]}, "1tdCmlhYt8gNgBBa5EvmSlg7yL5_V1irK8RdL2YQRLUE");
    }
    
    function deleteText()
    {
      Slides.Presentations.batchUpdate({"requests": [{"deleteText": {"objectId": "g24899cf468_0_47","textRange": {"type": "ALL"}}}]}, "1tdCmlhYt8gNgBBa5EvmSlg7yL5_V1irK8RdL2YQRLUE");
    }
    

    这是logSlidesAndElements()函数的输出

    enter image description here

    我知道它不是很精致但是我花了很多时间研究这一点,现在我开始在隧道尽头看到一些希望 . 我猜这个网站上还有其他人知道的比我更多,但我注意到你的问题已经存在了一段时间,所以我想我会和你分享我的进展,因为我知道它有多么令人沮丧 .

相关问题