【发布时间】:2016-04-09 03:48:09
【问题描述】:
我们使用包含学生所有信息的主电子表格。我想创建一个 UI 来捕获每个学生的分数并将其写入 Google 表格,我将从该表格中生成他们的成绩单。
我使用以下代码从主列表中导入数据 - 名称已正确导入,但我似乎无法提取值?我只是得到“未定义”
/**
* A function that inserts a custom menu when the spreadsheet opens to generate the Report Spreadsheet.
*/
function onOpen() {
var menu = [{name: 'Capture Report Data', functionName: 'setUpProgressReport_'}];
SpreadsheetApp.getActive().addMenu('Progress Report', menu);
}
/**
* A set-up function that creates a Report Sheet based on the class selected
*/
function setUpProgressReport_() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Report 1');
var ui = SpreadsheetApp.getUi(),
response = ui.prompt(
'Enter Class',
'Please enter the class you would like to enter marks for',
ui.ButtonSet.OK_CANCEL),
selectedClass = response.getResponseText();
//Import names of learners by selected class from Master Sheet
var cell = sheet.getRange("A1");
cell.setFormula('=QUERY(IMPORTRANGE("1Dxjt6W54e7n2F8a2zlRZV0n-VtCoPZTC2oZgeMPd8mE","MasterList!A1:Z2000"),"SELECT Col1, Col2,Col4 WHERE Col4 contains ' + "'" + selectedClass + "'" + ' Order by Col2 asc")');
// Freezes the first row to be used as headings
sheet.setFrozenRows(1);
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var values = SpreadsheetApp.getActiveSheet().getRange(lastRow, lastColumn).getValues();
Browser.msgBox(values[0][22]);
}
【问题讨论】:
-
[1]您是否已连接电子表格? [2]尝试"SELECT (A), (B), (D) WHERE (D) contains ' + "'" + selectedClass + "'" + ' Order by (B) asc")');
-
问题不在于导入数据,我可以在电子表格中看到数据并且查询有效。我只是无法访问这些值。例如,如果我尝试显示单元格 A15 的值,它会给出“未定义”的值。尽管我可以看到 A15 中的名字是 John。
标签: google-apps-script google-sheets