我想使用谷歌脚本为这样的数据创建折线图(仪表板) - Sample Data。我想用供应商的类别过滤器(col A)绘制价格保存的线图(col D)与订购的总重量(col E)。
我尝试编辑在线可用的代码(如下所示),但我遇到了一些错误。例如 - ReferenceError:未定义“data”。 (第9行,文件“代码”)。如果有人可以帮助我摆脱这些错误,那将是非常有帮助的。
PS:我对编程没有任何了解,所以发布了这个似乎有点主观的问题。
function doGet() {
var uiApp = UiApp.createApplication();
var ssKey = ("1fmbtvc2nM06L1t6T-un_q3LGtEDY-3fzOJ-NxbtxwGU");
var ss = SpreadsheetApp.openById('1fmbtvc2nM06L1t6T-un_q3LGtEDY-3fzOJ-NxbtxwGU');
var sss = ss.getSheetByName("Sheet1");
var dataTable = Charts.newDataTable();
for( var j in data[0])
dataTable.addColumn(Charts.ColumnType.STRING, data[0][j]);
for( var i = 1; i < data.length; ++i )
dataTable.addRow(data[i].map(String));
var dashboard = Charts.newDashboardPanel().setDataTable(dataTable);
var supplierFilter = Charts.categoryFilter()
.setFilterColumnLabel("Supplier")
.build();
var chartBuilder = Charts.newLineChart()
.setTitle('price vs volume')
.setXAxisTitle('price Saved')
.setYAxisTitle('Total Price')
.setDimensions(600, 500)
.setCurveStyle(Charts.CurveStyle.SMOOTH)
.setPointStyle(Charts.PointStyle.MEDIUM);
var chart = chartBuilder.build();
var dashboard = Charts.newDashboardPanel()
.setDataTable(dataTable)
.bind([supplierFilter], [lineChart])
.build();
dashboard.add(uiApp.createVerticalPanel()
.add(uiApp.createHorizontalPanel()
.add(supplierFilter)
.setSpacing(70))
.add(uiApp.createHorizontalPanel()
.add(pieChart).add(tableChart)
.setSpacing(10)));
uiApp.add(dashboard);
}
答案 0 :(得分:0)
UiApp已被弃用。尝试使用以下教程 https://developers.google.com/chart/interactive/docs/spreadsheets#sheet-name