【发布时间】:2014-04-04 09:37:32
【问题描述】:
我使用 Google Script 创建了一个 Google Charts 仪表板,当我将其部署为 Web 应用程序时,它运行良好。我想知道是否有办法将仪表板嵌入到 HTML 页面中?我尝试使用 HTML 服务而不是 UI 服务,但它没有显示仪表板,它只是显示“UIApplication”。下面是仪表板和 HTML 页面的代码。
谷歌脚本中的仪表板
function doGet() {
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
function createDashboard() {
var ss = SpreadsheetApp.openById('0Ar1JYhAF9RNsdENWZE9fdUw1ZlJwRENDRndlY3UzT2c');
var sheet = ss.getSheetByName('Charts');
var data = sheet.getDataRange();
var completeFilter = Charts.newCategoryFilter().setFilterColumnIndex(0).build();
var tableChart = Charts.newTableChart()
.setDataViewDefinition(Charts.newDataViewDefinition().setColumns([0,1]))
.build();
var pieChart = Charts.newPieChart()
.setDataViewDefinition(Charts.newDataViewDefinition().setColumns([0,1]))
.setTitle('Number of completed tasks')
.build();
var dashboard = Charts.newDashboardPanel().setDataTable(data)
.bind([completeFilter], [tableChart, pieChart])
.build();
var app = UiApp.createApplication();
var headerPanel = app.createHorizontalPanel();
headerPanel.add(app.createHTML("<center><h1>Welcome to the Charts Dashboard</h1></center>"));
var filterPanel = app.createVerticalPanel();
var chartPanel = app.createHorizontalPanel();
filterPanel.add(completeFilter).setSpacing(10);
chartPanel.add(tableChart).add(pieChart).setSpacing(10);
dashboard.add(app.createVerticalPanel().add(headerPanel).add(filterPanel).add(chartPanel));
app.add(dashboard);
return app;
}
HTML 页面
<html>
<head>
<title> Google Charts Dashboard </title>
</head>
<body>
<h1> Welcome to the Charts Dashboard </h1>
<p>Hello, world! The charts are below: </p>
<p><? var data = createDashboard(); ?> </p>
<p> <?= data ?> </p>
</body>
</html>
有谁知道为什么这不起作用或是否可行?任何帮助表示赞赏。
【问题讨论】:
标签: google-apps-script google-visualization google-apps