我是Google Apps脚本和编码的新手,但是我使用Google可视化HTML代码在Google Apps脚本中创建了Sankey图。我正在使用Google工作表中的数据,因为它是动态数据。目前,我已成功将该图部署为Web应用程序,该应用程序在刷新后会更新。但是,我想知道是否可以将工作表放在Google工作表中-也许作为单独的标签?我希望能够共享Google工作表并立即提供数据和Sankey图。这是我获取电子表格数据并将其发布为网络应用程序的代码:
function doGet(e) {
return HtmlService
.createTemplateFromFile("Index")
.evaluate()
.setTitle("Google Spreadsheet Chart")
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function getSpreadsheetData() {
var ssID = "XXXXXXXXXXXXXXX",
sheet = SpreadsheetApp.openById(ssID).getSheets()[0],
data = sheet.getDataRange().getValues();
return data;
}
[这是供许多人查看的,所以我在onOpen上弹出了一个警告,提示“查看图表菜单”,然后在onOpen上弹出了一个菜单,以单击该图表。
function onOpen() {
alert();
menu();
getSpreadsheetData();
openDiagram();
}
function alert() {
var ui = SpreadsheetApp.getUi();
ui.alert('To see diagrams for different brands, click on the "Diagram" menu.');
}
function menu() {
SpreadsheetApp.getUi()
.createMenu('Diagram')
.addItem('Diagram', 'openDiagram')
.addToUi();
}
function getSpreadsheetData() {
var
sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data'),
data = sheet.getDataRange().getValues();
return data;
}
function openDiagram() {
var html = HtmlService.createHtmlOutputFromFile('Index')
.setWidth(1000)
.setHeight(800);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Diagram');
}
然后,当我单击菜单下的图时,会打开一个窗口,其中包含我的图。