![](/img/trans.png)
[英]Google Apps Script of merging Google Sheet data to Google Doc template is not iterating after the 1st row of data
[英]Update data in 1st sheet based on data from another sheet with google apps script via unique identifier
我在電子表格上有兩張紙。
我從外部API獲取數據的第一張紙,以查看所有即將通過觸發器不斷更新的所有即將到來的類。
id | 類 開始 完成| 描述1 tig焊接7/6/2013 10:30 7/6/2013 12:30類描述2 tig焊接7/8/2013 10:30 7/8/2013 12:30類描述3 Serger基礎7/8 / 2013 14:30 7/6/2013 16:30課程描述
第二個是靜態類列表,在其中添加了第二列“類別”。
類 類別tig焊接金屬加工Serger Basics紡織品
我想檢查兩個電子表格中的標題是否匹配,如果匹配,則將類別添加到第一張工作表中,例如:
id | 標題| 開始 完成| 描述| 類別
然后,我將該電子表格作為JSON提供給第三方網絡應用。 聽起來需要做很多工作,但是還沒有提出其他解決方案。 這是進行中的代碼,上面有我的注釋。
function listClasses(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0]; //list of all upcoming classes
var sheet1 = ss.getSheets()[1]; //list of titles
var data = sheet.getDataRange().getValues(); // read all data in the sheet
var data1 = sheet1.getDataRange().getValues();
for(n=1;n<data1.length;++n){
var title1 = data1[n][0];
var category = data1[n][1];
// compare Check if title appears in column A of sheet 2.
if (ArrayLib.find(data1, 0, title1) != -1) {
// Yes it does, do something in sheet 0
for( var row = data.length -1; row >= 0; --row )
if (data[row][1] == title1){
var id = data[row][0];
var title = data[row][1];
var start = data[row][3];
var finish = data[row][4];
var description = data[row][5];
var category = data1[n][1];
// and here is where I got stuck!
data.appendRow([category]);
}
}
}
}
從您的評論看來,您似乎想在匹配的行上添加一列...您可以在數組級別上很容易地做到這一點,只需在找到匹配項時將值分配給行數組元素即可。 唯一要關心的是每一行(即代表一行的每個數組)必須具有完全相同的長度,否則您將無法正確地將其寫回到工作表中。
您沒有提到的一個細節是類別行是否是最后一行,和/或是否在電子表格上具有標題為“ category”的列名。
在第一個代碼中,我假設您有,那么您可以簡單地使用
data[row][6]=category;// because data[row][6] already exist in this array because the header defines a range width of (at least) 7 when you used getDataRange()
...
// and after the loop just write back data to sheet like this
sheet.getRange(1,1,data.length,data[0].length).setValues(data);
如果“類別”列不存在,則應該使用push方法在循環內的第一次運行的每行中添加一個元素,以便每一行都存在data[row][6]
...類似這樣:
if(data[row].length<7){data[row].push(' ')};// ensure that data[row][6] does exist
該行應放在迭代數據數組的循環中(索引“行”)
您提供的一些信息很難再進一步,我希望我做出了正確的猜測。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.