【发布时间】:2019-03-26 18:31:28
【问题描述】:
我正在尝试从从 Google 表格接收到的 JSON 数据创建一个下拉列表。我有从 Google 表格获取数据到 JSON 的代码。我无法创建下拉菜单。我想使用这个下拉菜单来创建图表。这是一个将工作表数据转换为 json 的代码。
function doGet(e){
// Change Spread Sheet url
var ss = SpreadsheetApp.openByUrl("URL to the Sheet");
// Sheet Name.
var sheet = ss.getSheetByName("waiverstatus");
return getUsers(sheet);
}
function getUsers(sheet){
var jo = {};
var dataArray = [];
// collecting data from 2nd Row , 1st column to last row and last column
var rows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
for(var i = 0, l= rows.length; i<l ; i++){
var dataRow = rows[i];
var record = {};
record['Students'] = dataRow[0];
record['Method'] = dataRow[1];
record['Satisfactory_C1'] = dataRow[2];
record['Developing_C1'] = dataRow[3];
record['Unsatisfactory_C1'] = dataRow[4];
record['Satisfactory_C2'] = dataRow[5];
record['Developing_C2'] = dataRow[6];
record['Unsatisfactory_C2'] = dataRow[7];
dataArray.push(record);
}
jo.user = dataArray;
var result = JSON.stringify(jo);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
【问题讨论】:
-
一切都应该在“jo”中,你解析jo并构建下拉列表的客户端HTML在哪里?
-
这里只是一个非常基本的代码卫生提示:变量的名称实际上应该传达它们的目的。您创建了一个名为“ss”的变量并在其上写了一条注释;还创建了变量“sheet”并在其上添加了注释;为什么不直接将 'ss' 重命名为 spreadsheetUrl 并将工作表命名为 sheetName,这样您就不需要评论来提醒它们的用途?与变量 'jo' 相同 - 我无法仅通过读取它的名称来理解它在做什么。
标签: javascript google-apps-script