如何将Google可视化图表嵌入电子表格

3

我最近几天一直在研究Google可视化,已经成功地将其应用于单个网页或使用内置的插入->图表创建器与电子表格一起使用。但是当我自己编辑JavaScript时,我希望这些数据仍然可以在它们来自的Google电子表格上显示出来。我已经研究了Apps脚本,但只有通过将其发布为应用程序才能使其工作,该程序会将我发送到完全不同的网页。

是否有任何方法可以嵌入我的自定义JavaScript代码,例如

function drawVisualization() {
    // Create and populate the data table.
    var data = google.visualization.arrayToDataTable([
      ['Region', 'count'],
      ['West', 8000],
      ['South', 7272],
      ['Northeast', 5333],
      ['Midwest', 4444],
      ['Southwest', 5714]
    ]);

    // Create and draw the visualization.
    new google.visualization.PieChart(document.getElementById('visualization')).
        draw(data, {title:"Sales Per Region"});
  }

将其转换成Google文档或电子表格,这是否被支持?
1个回答

1
你可以使用图表服务,并通过UiApp显示。
以下是PieChart的示例GS代码。
function getChart(dataTable){
  var chartBuilder = Charts.newPieChart()
       .setTitle('Sales Per Region')
       .setDimensions(600, 500)
       .set3D()
       .setDataTable(dataTable);

  return chartBuilder.build(); 
}

function showChart(){
  var dataTable = Charts.newDataTable()
       .addColumn(Charts.ColumnType.STRING, "Region")
       .addColumn(Charts.ColumnType.NUMBER, "Count")
       .addRow(['West', 8000])
       .addRow(['South', 7272])
       .addRow(['Northeast', 5333])
       .addRow(['Midwest', 4444])
       .addRow(['Southwest', 5714])
       .build();

  var chart = getChart(dataTable)

  //insert into the spreadsheet
  SpreadsheetApp.getActiveSheet().insertChart(chart)
}

要在文档中显示,您需要将最后一行替换为

  DocumentApp.getUi().showSidebar(UiApp.createApplication().add(chart))

无论如何,这些图表将显示在对话框(或侧边栏)中,而不是文档内容中。在文档中,您可以通过转换为图像来插入它们,因此

    var chart = getChart(dataTable)
    var imageChart = chart.getAs('image/jpeg');

并且要添加到内容中

  DocumentApp.getActiveDocument().getBody().appendImage(imageChart);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接