![](/img/trans.png)
[英]How do I pull over info from google sheets into a dropdown menu in forms that will update itself every minute
[英]Iterating over a number of spread sheets in a folder and I want to pull last 3 columns from each
我正在嘗試找到一種解決方案,將多張工作表的數據提取到單個主文檔中。 我只對每張表的最后三列感興趣,但是這些表的列數並不相同。
function getDataFromSpreadsheet(ssID) {
var ss = SpreadsheetApp.openById(ssID);
var ws = ss.getSheets()[0];
var data = ws.getRange("A1:W" + ws.getLastRow()).getValues();
return data;
}
我想我可以用 getrow.length()[-3] 做一些事情,但我完全沒有運氣讓它工作。
改變你的范圍
從:
var data = ws.getRange("A1:W" + ws.getLastRow()).getValues();
至:
var data = ws.getRange(1, ws.getLastColumn()-2, ws.getLastRow(), 3).getValues();
例子:
表 1:
Output:
function get_last_three_columns_from_spreadsheet_and_sheet(
spreadsheet_id = SpreadsheetApp.getActiveSpreadsheet().getId(),
sheet_name = SpreadsheetApp.getActiveSheet().getName()
) {
const spreadsheet = SpreadsheetApp.openById(spreadsheet_id);
const sheet = spreadsheet.getSheetByName(sheet_name);
const last_column = sheet.getLastColumn();
const last_three_columns = [last_column, last_column - 1, last_column - 2];
const data = last_three_columns.map((column) => {
const last_row = sheet.getLastRow();
return sheet.getRange(1, column, last_row).getValues();
}, sheet);
Logger.log(data);
return data;
}
也發布在 Reddit 上,我會嘗試這樣的事情。 您可以將 function 直接插入任何電子表格腳本並運行它。
默認情況下,如果你不給它 arguments 它只會使用活動的電子表格和工作表。
如果您從其他地方調用它,如果您給它一個電子表格和工作表名稱參數,它將獲得最后三列信息(如果它們可用)。 如果您的工作表少於三列,則會出錯。
只需將另一個“last_column - n”添加到數組中,就可以編輯常量“last_three_columns”以獲得最后的 4 或 5 或 n。
如果您希望 function 用於某些指定的 n 列,則需要進行一些調整,但原始 scope 用於最后 3 列。
結果是二維列 arrays 的數組,例如,
// Output
[
[["Column 3"], ["data"], etc.],
[["Column 2"], ["data"], etc.],
[["Column 1"], ["data"], etc.]
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.