我正在尝试根据从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);
}
答案 0 :(得分:1)
以下是从电子表格进行下拉的示例。
Code.gs
function test() {
try {
var html = HtmlService.createTemplateFromFile("HTML_GetJo").evaluate();
SpreadsheetApp.getUi().showModalDialog(html, "Jo");
}
catch(err) {
Logger.log(err);
}
}
function get_jo() {
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var rows = sheet.getRange(2,1,sheet.getLastRow()-1,sheet.getLastColumn()).getValues();
var jo = {};
var dataArray = [];
for( var i=0; i<rows.length; i++ ) {
var record = {};
record['Students'] = rows[i][0];
record['Method'] = rows[i][1];
record['Satisfactory_C1'] = rows[i][2];
record['Developing_C1'] = rows[i][3];
record['Unsatisfactory_C1'] = rows[i][4];
record['Satisfactory_C2'] = rows[i][5];
record['Developing_C2'] = rows[i][6];
record['Unsatisfactory_C2'] = rows[i][7];
dataArray.push(record);
}
jo.user = dataArray;
var result = JSON.stringify(jo);
return result;
}
catch(err) {
Logger.log(err);
}
}
HTML_GetJo.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<select id="myjo">
</select>
<script>
(function () {
google.script.run.withSuccessHandler(
function(value) {
var jo = JSON.parse(value);
var select = document.getElementById("myjo");
for( var i=0; i<jo.user.length; i++ ) {
var user = jo.user[i];
var option = document.createElement("option");
option.text = user.Students;
select.add(option);
}
}
).get_jo();
}());
</script>
</body>
</html>