Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Charts 使用谷歌应用程序脚本更新谷歌文档中的嵌入式图表_Charts_Google Apps Script_Google Sheets_Google Docs - Fatal编程技术网

Charts 使用谷歌应用程序脚本更新谷歌文档中的嵌入式图表

Charts 使用谷歌应用程序脚本更新谷歌文档中的嵌入式图表,charts,google-apps-script,google-sheets,google-docs,Charts,Google Apps Script,Google Sheets,Google Docs,TLDR;如何在文档中使用脚本编辑器来更新文档中嵌入的图纸图表 我知道有一个脚本可以为谷歌幻灯片做这项工作,但我正在谷歌文档中尝试,却找不到相关文档 具体来说,我有一个谷歌文档。这个文档包含大约30个表和嵌入的图表,它们都链接到一个单独的谷歌表单。这三十张都来自一张谷歌表格。现在,每当电子表格发生变化时,我可以让我们的非极客点击所有30个“更新”悬停按钮,但我希望电子表格会发生很大变化,我想对文档进行白痴验证,以确保它始终是最新的。据我所知,这不是谷歌应用程序的现成功能,所以我想写一个脚本来实

TLDR;如何在文档中使用脚本编辑器来更新文档中嵌入的图纸图表

我知道有一个脚本可以为谷歌幻灯片做这项工作,但我正在谷歌文档中尝试,却找不到相关文档

具体来说,我有一个谷歌文档。这个文档包含大约30个表和嵌入的图表,它们都链接到一个单独的谷歌表单。这三十张都来自一张谷歌表格。现在,每当电子表格发生变化时,我可以让我们的非极客点击所有30个“更新”悬停按钮,但我希望电子表格会发生很大变化,我想对文档进行白痴验证,以确保它始终是最新的。据我所知,这不是谷歌应用程序的现成功能,所以我想写一个脚本来实现它

但我找不到任何方法从谷歌文档中访问嵌入式图表

如果我能像你一样在工作表中运行这样的东西,我可能会想出来,但我不能:

var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];
    var charts = sheet.getCharts();
    for (var i in charts) {
       var chart = charts[i];
       // Update the chart
    }
}
虽然docs具有以下函数,
DocumentApp.getActiveDocument()
,但对象文档不包含函数
getCharts()
。我相信它们被认为是图像,但图像没有更新功能


甚至可以使用脚本访问/更新文档中的嵌入式图表吗?也许通过在电子表格中运行脚本来编辑和更新文档?看起来很奇怪,你可以在所有东西的幻灯片中这样做,但不能在文档中这样做。

在Google文档中,DOM图表作为InlineImages,这里是记录图像属性的脚本。但实际上,它们看起来是只读的,此方法的文档以死胡同结尾:“如果元素包含此属性的多个值,则为null。”

函数myFunction(){
var doc=DocumentApp.getActiveDocument()
var body=doc.getBody()
var pars=body.getParations()
var atts=img.getAttributes();
//记录段落属性。
for(var att在atts中){
Logger.log(att+”:“+atts[att]);
}
对于(var PAR中的PARS){
Logger.log(pars[par].getText());
var chN=pars[par].getNumChildren()
Logger.log(chN);
如果(chN>0){
var type=pars[par].getChild(0).getType()
Logger.log(类型);
如果(类型==“内联图像”){
var atts=pars[par].getChild(0).getAttributes()
Logger.log(JSON.stringify(atts));
for(var att在atts中){
Logger.log(att+”:“+atts[att]);
}
}
}
}
返回

}
您能找到解决方案吗?我没有。我们最终使用了微软办公软件。我们确实在寻找跨平台的解决方案,但从未找到。