当前位置: 首页 > 知识库问答 >
问题:

在Google工作表中将数组添加为EmbeddedChart的“范围”

姚晋
2023-03-14

简介:我想通过使用嵌入的Google脚本中生成的数组来更改Google sheets EmbeddedChart中的数据,而无需先将数据倒入单元格。

Long:我有一个绑定脚本,可以更新先前存在的电子表格。我修改了js中的数据,并希望更改一个嵌入式图表以使用生成的数据数组,而不将数据放在表中。从技术上讲,我不在乎它是一个嵌入的图表,我只想用一个图表制作一个摘要页面,而不想用额外的表格污染文档。不希望使用工作表创建HTML页面。

我尝试过各种选择。

。setDataTable()不是EmbeddedChartBuilder的方法,与普通(HTML)谷歌图表不同。我假设我缺少一些简单的东西,比如某个类,该类将数组转换为类似于DataTable或Excel名称的伪范围实例,而不涉及工作表。

最坏的情况:我不知道有什么方法可以在Google sheets中添加id为attrib的div,有吗?

测试方法:

>

//演示脚本。函数populate(){var a=[1,2,3,4,5];var sheet=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();var chart=sheet.getCharts()[0]。modify();chart.setOption('title','Changed in script…);cchart=chart.asColumnChart();dt=Charts.newDataTable().addColumn(Charts.ColumnType.STRING,“分类横坐标”).addColumn(Charts.ColumnType.NUMBER,“数字纵坐标”).addRow([“A”,5]).addRow([“B”,6]).build;

//试试1。仅当它接受数组时才进行解压缩//图表addRange(a)//无法将数组转换为范围//卡哈特。addRange(a)//无法将数组转换为范围//试试2。以防它接受DataTable//chart。addRange(dt)//找不到方法addRange(DataTable)//试试3。绝望的黑客//新谷歌。可视化。柱形图(getCharts()[0].getId()。绘制(dt,选项)//ReferenceError:“google”未定义//我是否可以访问它//$(getCharts()[0].getId()。html(“Hacked”)//引用错误:“$”未定义//再次//文件getElementByID(getCharts()[0].getId())//引用错误:“文档”未定义//试试5//床单updateChart(Charts.newColumnChart().build())//找不到方法updateChart(图表)//试试4。文档中缺少方法//图表addDataTable(a)//在对象EmbeddedChartBuilder中找不到函数addDataTable。

//卡哈特。addDataTable(a)//在对象EmbeddedColumnChartBuilder中找不到函数addDataTable。

床单updateChart(chart.build());}

共有1个答案

慕容灿
2023-03-14

不要使用嵌入式图表,而是使用普通图表对象并使用。getAs(MimeType.PNG)将图表作为图像添加到电子表格中。

编辑:我已经尝试过这个解决方案,由于谷歌的错误,当你得到PDF格式的电子表格时,脚本插入的图像不会显示出来。谷歌请解决这个问题,自从它被报道已经三年了,他们仍然在“工作”。。

 类似资料:
  • 我可以问一下,我如何通过脚本添加编辑器到受保护的工作表和范围中的权限?我尝试使用,它需要枚举所有的电子邮件地址,对吗?但是,有没有一个简单的或另一个方法让我做到这一点呢?如果没有别的办法,我有90张纸要一张一张修改。每个文件的电子邮件地址不相同。 我正在考虑在Google Drive中自动获得与人和组共享选项中的所有编辑器。这有可能做到吗?

  • 我有一个多标签谷歌表。第一个是主表,我有一些基本的位置信息。在其他页面中,我通过“导入”传输这些基本信息,因此我有一些列动态更改,一些是静态的,用户可以更新。尽管如此,如果我在主工作表的数据之间添加一行,它只会更改动态列(从importrange更新),而其余列不会更改-这会影响更新。在主工作表中添加行时,是否有任何方法/脚本可以自动在其他工作表中添加行?

  • 问题内容: 我已经浏览了几乎所有以前的线程,但是仍然无法正常工作。我正在尝试向现有工作簿中添加新工作表。我的代码有效,但是它继续添加更多(实际上很多)工作表。我不知道解决方案。下面是我的代码 问题答案: 如果要向现有电子表格中添加工作表,只需继续并将新工作表添加到文件中,而不是复制对象并尝试向其中添加新工作表。

  • 我想把一个数组(带有随机整数值)分成大小相等的小块,然后根据数组的值分配元素。例如,如果我有一个大小为9的数组,并且想要将其分成3个块,那么0到3之间的数字被分配到第一个块中,4到6之间的数字被分配到第二个块中,其余的数字被分配到第三个块中。我必须重复单独的块(可以暂时停留)。最后将所有块添加到数组列表中。 这是我的方法,但每件事都是硬编码的。我能动态地做吗?感谢帮助!

  • 我想通过API(appscript)在Google工作表中实现组,因为direct方法不能动态工作。我有一个名为levels(0-8)的列,然后还有两个列(其他信息)。我想写一个脚本来组成小组。它将检查具有级别的第一列,如果下一行的级别高于当前i级别,它将生成一组这些行,直到出现具有相同级别或低于i级别的行。例如,级别为:1,2,3,4,1,0,3,4。在这种情况下,它将从1开始,并将2,3,4作

  • 在有趣的功能中,当我将列表添加到其他列表时,它正在添加空列表,我可以找到原因有人可以帮助我这个程序是关于查找给定数组的不同组合