我有一張有 5 列的作業表。每列都有關于每個學生的以下資訊:
- 答:全名
- B:受教育程度
- C:每周家庭作業的數量
- D:每個家庭作業的成績
- E:關于可能的個人改進計劃的注釋/建議
我想使用 Apps 腳本而不是公式來搜索任何學生并在 HTML 檔案中顯示該學生的詳細資訊。創建 HTML 檔案并將其連接到我的腳本不是問題,因為我知道如何做到這一點并且之前已經做到了。但是我堅持修改腳本的方式,它允許我在作業表中搜索任何學生,并在(回呼)函式/變數/陣列或我可以呼叫/使用的任何內容中獲取有關該學生的所有資訊在我的 HTML 檔案中。
非常感謝您在正確方向上的任何提示或建議。
當前代碼可以找出指定學生在作業表中列出的次數(因為可以在作業表中多次列出學生并提供一些附加資訊!!!!),但我不知道如何從這里繼續:(
function searchAndFindStudentData() {
var ss = SpreadsheetApp.openById("SPREADSHEET_ID");
var sheetname = ss.getSheetByName("SHEET_NAME");
var countStart = 0;
var lastColumn = sheetname.getLastColumn();
var lastRow = sheetname.getLastRow();
var sheetValues = sheetname.getRange(2, 1, lastRow, lastColumn).getValues();
for (var row in sheetValues) {
for (var colum in sheetValues[row]) {
if (sheetValues[row][colum] == "John Smith") {
countStart ;
}
}
}
Logger.log(countStart);
}
uj5u.com熱心網友回復:
這應該讓你開始:
function searchAndFindStudentData() {
const ss = SpreadsheetApp.openById("SPREADSHEET_ID");
const sh = ss.getSheetByName("SHEET_NAME");
const vs = sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
let info = {}
const r = SpreadsheetApp.getUi().prompt("Enter Student Name" , SpreadsheetApp.getUi().ButtonSet.OK_CANCEL);
if(r.getSelectedButton() == SpreadsheetApp.getUi().Button.OK) {
let name = r.getResponseText();
vs.forEach(r => {
if(r[0] == name ) {
if(!info.hasOwnProperty(name)) {
info[name] = {level:[],assignments:[],notes:[]}
} else {
if(r[1]) {
info[name].level.push(r[1]);
}
if(r[2] && r[3]) {
info[name].assignments.push([{num:r[2],grades:r[3]}]);
}
if(r[4]) {
info[name].notes.push(r[4]);
}
}
}
});
return info;
} else {
SpreadsheetApp.getUi().alert('Search Canceled');
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/346520.html
標籤:javascript 数组 谷歌应用程序脚本
上一篇:創建一個按鈕來使用宏查找 替換
