首页 > 解决方案 > Json to google chart table with different cols and row

问题描述

我有下面的json

[{
    "dept": "department1",
    "values": [20, 4, 355, 223, 5, 5, 19, 23, 45,11,12]
}, {
    "dept": "department2",
    "values": [5, 2]
}, {
    "dept": "department3",
    "values": [35, 3, 8, 18, 10,3,4, 9]
}, {
    "dept": "department4",
    "values": [36]
}
]

部门的数量是不同的(不超过 24 个),因此在值中计数(但不超过 100 个)

我想倾斜并使其成为如下的谷歌表格。我该怎么做?


department1 , department2, department3, department4
20            5            35            36
4             2            3
355                        8
223                        18
5                          10
5                          3
19                         4
23                         9
45                        
11
12                        

标签: javascriptjsonchartshtml-tablegoogle-visualization

解决方案


您可以使用嵌套的 for 循环来完成此操作:

var file = [{
    "dept": "department1",
    "values": [20, 4, 355, 223, 5, 5, 19, 23, 45,11,12]
}, {
    "dept": "department2",
    "values": [5, 2]
}, {
    "dept": "department3",
    "values": [35, 3, 8, 18, 10,3,4, 9]
}, {
    "dept": "department4",
    "values": [36]
}
]


var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

for (i = 0; i < file.length; i++){
    //get the department name and add it to the first cell of current column (i)
    sheet.getRange(1, i+1).setValue(file[i].dept)
    for (j = 0; j < file[i].values.length; j++){
     //get the each value of values and add it to the cell in row(j) and column (i)
      sheet.getRange(j+2, i+1).setValue(file[i].values[j])
    }
  }

推荐阅读