Google apps script 如何在不显示图表的情况下绘制图表';表中有什么数据?
我正在尝试使用谷歌应用程序脚本在谷歌工作表中显示图表 在我看来,向图表提供数据的唯一方法是在工作表上显示这些数据,并将数据的范围传递给图表。因此:Google apps script 如何在不显示图表的情况下绘制图表';表中有什么数据?,google-apps-script,google-visualization,Google Apps Script,Google Visualization,我正在尝试使用谷歌应用程序脚本在谷歌工作表中显示图表 在我看来,向图表提供数据的唯一方法是在工作表上显示这些数据,并将数据的范围传递给图表。因此: var chart = SpreadsheetApp.getActiveSheet().newChart().asPieChart() .addRange(range) .build(); SpreadsheetApp.getActiveSheet().insertChart(chart); 其中,范围是包含图表数据的工作表中的范
var chart = SpreadsheetApp.getActiveSheet().newChart().asPieChart()
.addRange(range)
.build();
SpreadsheetApp.getActiveSheet().insertChart(chart);
其中,范围是包含图表数据的工作表中的范围
我的问题是,是否有一种方法可以在不显示原始数据的情况下显示图表?这些解决方法怎么样?如果没有EmbeddedChartBuilder的电子表格范围,我找不到如何创建图表。所以我想到了另外两个解决办法 解决方法1 在这种情况下,为了不显示图表的数据,它使用一系列其他电子表格
var id = "### spreadsheet id ###"; // There is data in this spreadsheet.
var name = "### sheet name ###";
var datarange = "### data range ###";
var range = SpreadsheetApp.openById(id).getSheetByName(name).getRange(datarange);
var chart = SpreadsheetApp.getActiveSheet().newChart().asPieChart()
.addRange(range)
.build();
SpreadsheetApp.getActiveSheet().insertChart(chart);
解决方法2
在这种情况下,为了不显示图表的数据,它使用newDataTable()
读取数据。您可以将数据添加到newDataTable()
创建的图表将作为图像导入电子表格。图表示例来自
参考资料:
如果这些对您没有用处,我很抱歉。这是一个骇人的解决方案,取决于您为什么需要隐藏数据,但您可以使用第二张工作表中的数据范围,然后隐藏工作表?
var data = Charts.newDataTable()
.addColumn(Charts.ColumnType.STRING, 'Month')
.addColumn(Charts.ColumnType.NUMBER, 'In Store')
.addColumn(Charts.ColumnType.NUMBER, 'Online')
.addRow(['January', 10, 1])
.addRow(['February', 12, 1])
.addRow(['March', 20, 2])
.addRow(['April', 25, 3])
.addRow(['May', 30, 4])
.build();
var chart = Charts.newAreaChart()
.setDataTable(data)
.setStacked()
.setRange(0, 40)
.setTitle('Sales per Month')
.build().getBlob();
SpreadsheetApp.getActiveSheet().insertImage(chart, 1, 1);