我正尝试在Google Apps脚本中构建一个程序,该程序从google表格中获取数据,使用GAS Charts Service将其处理为图形,然后使用{{3 }}。
使用Charts示例代码,我编译一个图形:
function graphTest () {
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();
var imageData = Utilities.base64Encode(chart.getAs('image/png').getBytes());
var imageUrl = "data:image/png;base64," + encodeURI(imageData);
return imageUrl;
}
然后我使用简单的Sites Service将图形放置在新的Google站点页面上:
var pageTemplate = HtmlService.createTemplateFromFile("page template.html");
pageTemplate.image = graphTest();
var currentPage = site.createWebPage("graph", "graph", pageTemplate.evaluate().getContent())
页面模板包含用于图像的一行:
<img src = <?!=image?>>
从理论上讲,这段代码可以正常工作,但是查看站点中的输出后,页面HTML只是一个隐秘的
<img src="javascript:void(0);">
HTML Template,因此使我相信Base64编码本身没有问题。它似乎与旧版Google网站不兼容。确实,直接将HTML代码写到页面中,例如
<img src="data:image/png;base64, *all the Base64 data here* ">
提供相同的javascript:void(0);作为GAS代码。
旧版Google网站是否不接受图片的Base64编码?是否可以通过Google Apps脚本将图形图像获取到Google网站上?
谢谢
亚历克斯
答案 0 :(得分:0)
要回答我自己的问题:
经过大量的实验,我可以使用
<embed src = "*Base64 Data*">
标签代替img标签成功。这既可以通过Google Apps脚本,也可以通过Google Sites HTML编辑器来实现。