【发布时间】:2020-10-26 09:12:24
【问题描述】:
我正在寻找一种将Charts.Chart 嵌入 Google 表格的方法(但不仅如此,我还希望能够将其插入到其他支持中,例如用户表单、Google Doc 等)
function generateChart(data) {
var chartBuilder = Charts.newBarChart();
// Miscellaneous such as titles, dimensions and data
// ..
;
var chart = chartBuilder.build();
return chart;
}
另外,我不想直接使用电子表格范围内的图表值(会有一些数据操作..),但如果来自data 哪里是数组结构,则使用。
data = {
field1: [..],
field2: ..
}
所以,基本上我想避免这样的事情,因为它会创建对工作表的依赖。
var sheet = SpreadsheetApp.getActiveSheet();
var chartBuilder = sheet.newChart()
// ..
;
如果我写sheet.insertChart(generateChart(data)),我会收到以下错误。这是有道理的,因为我处理的不是同类型的Chart,但是有解决方法吗?
异常:参数 (Charts.Chart) 与 SpreadsheetApp.Sheet.insertChart 的方法签名不匹配。
我想知道是否不应该将其转换为 blob 以使其与 Google Sheet Chart 格式兼容,但我确信有更直接的方法可以实现它。
感谢您的任何见解!
【问题讨论】:
-
您可以将其作为图像插入,否则我认为无法转换
Chart=>EmbeddedChart类。 -
好吧,我也发现了这种可能性,但恐怕它太有限了......所以,基本上
Chart类是完全没用的(除了给定的想象?)我也考虑过创建一个自定义的Sheet类,我可以将它抽象一点,但我只知道 JavaScript 的基础知识。 -
是的。
Chart类毫无用处。这是现已弃用的UiApp的幸存独奏残余。 -
... 那么,是否没有其他方法可以生成不直接使用范围的图表?我的意思是值(字符串、整数等)的数组或集合(不确定它是否存在于 JavaScript 中,但在 VBA 集合中必须转换为数组才能填充图表系列)?否则,我找到了一种使用 chart.js 生成超棒图表的绝佳方法,但恐怕无法将它们直接插入到表格(或其他 Google 应用程序)中,对吧?
-
我不完全确定,因为我还没有尝试破解并查看
EmbeddedChart对象(这需要原始研究/时间和完全浪费我时间的真正可能性)。根据我目前的经验,直接创建没有范围的嵌入式图表是不可能的。如果我有兴趣,我会先研究.setOption()和chart html source。更好/更简单的方法是使用侧边栏 html 并直接在浏览器中使用 google-charts,您可以在其中添加您认为合适的数组。
标签: google-apps-script charts google-visualization