Brief:我想通过使用嵌入式Google脚本中生成的数组来更改Google sheets EmbeddedChart中的数据,而无需先将数据注入单元格。在Google工作表中将阵列添加为EmbeddedChart的“范围”
长:我有一个绑定脚本来更新一个已存在的电子表格。我修改js中的数据,并希望更改嵌入的图表以使用生成的数据数组,而不将数据放在表上。我在技术上不关心它是一个EmbeddedChart我只是想用一个图形制作一个摘要页面而不用一张额外的表格来污染文档。不希望将HTML页面放在表单中。
我试过各种选择。
.setDataTable()
不是一种方法EmbeddedChartBuilder
,不像正常(HTML)谷歌图表。我假设我缺少一些简单的东西,比如某些类将数组转换为与DataTable或Excel的名称类似的伪范围实例,而无需触摸工作表。
最糟糕的情况:我不知道在Google工作表中添加带id id的div的方法,是否有一种方法?
方式进行测试:
sheet.getCharts()[0].modify().addRange([2,3,4,5]);
//无法转换阵列到范围。sheet.getCharts()[0].modify().addRange("{2,3,4,5}");
//找不到方法addRange(string)。- (绝望...)
sheet.getCharts()[0].modify().setDataTable();
//在对象EmbeddedChartBuilder中找不到函数setDataTable。 - (绝望...)
sheet.updateChart(chartFromCharts);
//找不到方法updateChart(Chart)。 将数组转换为范围对象而不保存在纸上
//演示脚本。函数populate(){var 0 = [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(); (),addRow([“A”,5])。addRow() [ “B”,6])建立();
//尝试1.绝对不要接受数组。 //chart.addRange(a); //无法将数组转换为范围。 //cchart.addRange(a); //无法将数组转换为范围。 //试试2.万一它接受DataTable //chart.addRange(dt); //找不到方法addRange(DataTable)。 // Try 3. Desparate hack ... // new google.visualization.ColumnChart(getCharts()[0] .getId())。draw(dt,options); // ReferenceError:“google”未定义 //我是否可以访问它? //$(getCharts()[0].getId()).html("Hacked“)// ReferenceError:”$“未定义。 // again ... //document.getElementByID(getCharts()[0] .getId())// ReferenceError:“document”未定义。 // Try 5. //sheet.updateChart(Charts.newColumnChart()。build()); //找不到方法updateChart(Chart)。 // Try 4.文档中缺少方法? //图表。addDataTable(一); //在对象EmbeddedChartBuilder中找不到函数addDataTable。
//cchart.addDataTable(a); //在对象EmbeddedColumnChartBuilder中找不到函数addDataTable。
sheet.updateChart(chart.build()); }
你到目前为止尝试过什么?你能澄清一点你想做什么?...检查这个文件如何在Stack Overflow中提出问题http://stackoverflow.com/help/how-to-ask – Gerardo
我的目标是简单地在谷歌表格中的图表,而不必制作具有所需数据的新工作表,并且不需要在工作表之外制作HTML页面或类似表格,因为这会损害其目的。谢谢。 –