我有多個 .txt 檔案,其中包含每個科目的學生分數。
- 學生成績1
- 學生成績2
我想使用谷歌腳本將學生標記決議為谷歌表,輸出應該是這樣的。
- 學生成績單。

我對列的范圍有疑問,因為每個學生都選修了不同數量的科目。對決議方法有什么建議嗎?
sheet.getRange(lastRow 1,5,mark.length,marks[1].length).setValues(mark);
uj5u.com熱心網友回復:
嘗試這個。代碼更新。如果學生最多有 8 個科目。(您可以更改為 10 或 50)
const file = DriveApp.getFileById('ID').getBlob().getDataAsString();
const data = Utilities.parseCsv(file,'|');
const arr = []
const index = [] //0,7,12
for(let i =0; i< data.length;i ){
if(data[i].toString().includes('*')){
index.push(i);
}
}
const arr1 = []
for (let i =0;i< index.length;i ){
const start = index[i];
const end = index[i 1]
if(i 1 > index.length){
arr1.push(data.slice(end))
}else{
arr1.push(data.slice(start,end))
}
}
const finalarr = []
for(let i=0; i< arr1.length;i ){
const transit = []
for(let j=0;j<arr1[i].length;j ){
if(j == 0){
transit.push(arr1[i][j][0],arr1[i][j][2])
}else{
transit.push(arr1[i][j][0].split(':')[1])
}
}
//change the max subject length in here. Replace 8 with your desired numbers
const arr_new = new Array(8)
const arr_desired_length = transit.concat(arr_new.slice(transit.length))
finalarr.push(arr_desired_length)
}
finalarr.forEach(r =>{
if(r[0].includes('*')){
r[0] = r[0].replace('*','')
}
})
//sheet.getRange(lastRow 1,5,finalarr.length,finalarr[0].length).setValues(finalarr);
console.log(finalarr)
//OUTPUT in the same length
[ [ 'ELMI ALSA', '89.0', '60', '88', '78', '68', '89', '70' ],
[ 'EMMY JOE', '80.0', '86', '84', '89', '90', , ],
[ 'ELIZA MOHRE', '73', '60', '70', , , , ] ]
uj5u.com熱心網友回復:
當我看到您的示例影像時,我猜想您當前的問題可能是由于要放入電子表格的值中每個元素的陣列長度。如果我的理解是正確的,那么下面的修改呢?
從:
sheet.getRange(lastRow 1,5,mark.length,marks[1].length).setValues(mark);
到:
const maxLen = Math.max(...mark.map(r => r.length));
const values = mark.map(r => r.length < maxLen ? [...r, ...Array(maxLen - r.length).fill("")] : r);
sheet.getRange(lastRow 1, 5, values.length, values[1].length).setValues(values);
- 在此修改中,您的值的每個長度都變為相同的長度。這樣,
setValues就可以使用了。
筆記:
- 在您的放映腳本中,似乎使用了
markandmarks。從您的腳本中,我了解到這mark是放入電子表格的價值。
參考:
- 地圖()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/436473.html
標籤:javascript 数组 解析 谷歌应用脚本 谷歌表格
