gpt4 book ai didi

javascript - 创建条形图 - 添加行

转载 作者:行者123 更新时间:2023-12-02 17:54:01 24 4
gpt4 key购买 nike

我正在尝试从 Google 电子表格创建条形图。我不想手动添加每一列和行,因此这个示例似乎应该可以工作并使用 for 循环自动执行该过程。

下面的例子来自https://sites.google.com/site/appsscripttutorial/chart-services/bar-chart

错误显示“行有太多单元格。最多应与列数相同。”

function doGet(){
//Get the data from spreadsheet
ssID ='SpreadsheetID';//Change it to yours
var SS = SpreadsheetApp.openById('ssID');
var sheet = SS.getSheets()[0];
var data = sheet.getRange('A1:G7').getValues();

//Build data table
var dataTable = Charts.newDataTable();

//Add Column types
dataTable.addColumn(Charts.ColumnType.STRING, data[0][0]);
for(var i=1; i<data[0].length-1; i++){
dataTable.addColumn(Charts.ColumnType.NUMBER, data[0][i]);
}

//Add rows
for(var j=1; j<data.length; j++){
dataTable.addRow(data[j]);
Logger.log(data[j])
}

//Create and build chart
var chart = Charts.newBarChart()
.setDataTable(dataTable)
.setTitle("Sales by store")
.build();

var app = UiApp.createApplication().setTitle("AST Chart");
app.add(chart)
return app;
}

最佳答案

您选择了一个范围 'A1:G7' 。即 7 列 x 7 行。现在,您开始通过添加列来构建数据表。

1:dataTable.addColumn(Charts.ColumnType.STRING, data[0][0]);

2-6:for(var i=1; i<data[0].length-1; i++)

参见,data[0].length等于7 ,循环经过 1, 2, 3, 4, 5 ,所有小于 6 的数字.

然后,当您开始添加数据行时,数据表中没有足够的列,并且您会收到所看到的错误。 (现在很清楚了,不是吗?)

要解决这个问题,请更改循环上限。

//Add Column types
dataTable.addColumn(Charts.ColumnType.STRING, data[0][0]);
for(var i=1; i<data[0].length; i++) {
dataTable.addColumn(Charts.ColumnType.NUMBER,data[0][i]);
}

...或循环所有列,在循环内做出类型决策...

//Add Column types
for(var i=0; i<data[0].length; i++) {
if (i == 0) {
dataTable.addColumn(Charts.ColumnType.STRING,data[0][i]);
}
else {
dataTable.addColumn(Charts.ColumnType.NUMBER,data[0][i]);
}
}

...或者同样的事情,但是使用三元运算符来减少代码...

//Add Column types
for(var i=0; i<data[0].length; i++){
dataTable.addColumn(
i==0 ? Charts.ColumnType.STRING : Charts.ColumnType.NUMBER,
data[0][i]);
}

还有许多其他方法可以实现此目的,但无论您选择哪种方式,只需确保涵盖所需的全部值即可。

关于javascript - 创建条形图 - 添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com