Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 如何在不显示图表的情况下绘制图表';表中有什么数据?_Google Apps Script_Google Visualization - Fatal编程技术网

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);