过去几天我一直在关注谷歌可视化,并成功地将其用于单个网页或使用内置插入的电子表格 - >图表创建者。但是当我自己编辑javascript时,我希望这些数据仍然可以在谷歌电子表格中看到。我查看了应用程序脚本,我只能将它作为一个应用程序发布,然后将其发送到一个完全不同的网页。
有什么方法可以嵌入我的自定义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"});
}
进入谷歌文档或电子表格还是不受支持?
答案 0 :(得分:1)
您可以使用Charts Services并通过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)
}
for doc in doc您需要将最后一行替换为
DocumentApp.getUi().showSidebar(UiApp.createApplication().add(chart))
但无论如何,这些图表将在对话框(或侧边栏)中,而不是在文档的内容中。 在文档中,您可以通过转换为图像插入它们,所以
var chart = getChart(dataTable)
var imageChart = chart.getAs('image/jpeg');
并添加到内容
DocumentApp.getActiveDocument().getBody().appendImage(imageChart);