這里完全是初學者。我試圖從包含大約 40K 行和 25 列的電子表格 B 中選擇 A、B、C 列到作為空白檔案的電子表格 A。所以,我有兩個電子表格。這段代碼作業正常,但我只想選擇我需要的列(包括所有資料的列,而不僅僅是標題)。
function importdata() {
let ss = SpreadsheetApp.openById("ID"); //SPREADSHEET TO COPY FROM
let sheet = ss.getSheetByName("name"); //SHEET (TAB) TO COPY FROM
sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();
let ssThis = SpreadsheetApp.getActiveSpreadsheet();
let sheetRawData = ssThis.getSheetByName("name"); //SHEET IN THE TARGET SPREADSHEET TO COPY TO
sheetRawData.getRange(1,1,sheetRawData.getLastRow());
}
關于如何將其添加到上面的代碼中的任何想法?非常感謝!
uj5u.com熱心網友回復:
您可以創建選定列的陣列并獲取/設定與這些列對應的范圍的值:
function importSelectedColumns() {
let selectedColumns = [1, 3, 5];
let ss = SpreadsheetApp.openById("ID"); //SPREADSHEET TO COPY FROM
let sheet = ss.getSheetByName("name"); //SHEET (TAB) TO COPY FROM
let ssThis = SpreadsheetApp.getActiveSpreadsheet();
let sheetRawData = ssThis.getSheetByName("name"); //SHEET IN THE TARGET SPREADSHEET TO COPY TO
selectedColumns.forEach(function(column){
let data = sheet.getRange(1,column, sheet.getLastRow(),1).getValues();
sheetRawData.getRange(1,column, sheet.getLastRow(), 1).setValues(data);
})
}
解釋:
- forEach()是隨后回圈遍歷幾列的幾種可能性之一。
- getRange(row, column, numRows, numColumns)允許您指定要檢索的列數和數量。
- setValues(values)允許您將資料從一個范圍匯入到另一個范圍。
- 注意:來源范圍和目的地范圍的范圍維度需要匹配。
附加資訊:
如果您想將資料粘貼到從第 1 列開始的相鄰范圍中,基于上述示例的一種可能方法是重新定義回圈,如下所示:
selectedColumns.forEach(function(column,i ){
let data = sheet.getRange(1,column, sheet.getLastRow(),1).getValues();
sheetRawData.getRange(1,1 i, sheet.getLastRow(), 1).setValues(data);
})
因此i引入了計數器變數,并將目標列的符號從 修改column為1 i,這意味著列將從 column 開始設定,1并1在每次回圈迭代時增加。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367958.html
標籤:谷歌应用程序脚本
上一篇:Apps腳本中的日期格式
