我很難找到一種方法來同步多個工作表到主電子表格。 對於我的測試,我有一個大的電子表格,在5個城市的地址。我正在嘗試爲每個城市創建電子表格,並且可以在任一工作表中更改數據時同步數據。 所以我會管理整體數據,並將5個電子表格中的每一個分配給其他人。這樣,他們可以更新無權訪問所有數據的工作表。使用內置查詢或導入區域功能的問題在於,如果用戶對「城市」電子表格進行了更改,則會因爲引用數據而打碎表單。同步多個谷歌電子表格(5 +)回到主谷歌電子表格
我在搜索後通過'Dev'找到了代碼。
var sourceSpreadsheetID = "ID HERE";
var sourceWorksheetName = "SHEET NAME HERE";
var destinationSpreadsheetID = "ID HERE";
var destinationWorksheetName = "SHEET NAME HERE";
function importData() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
var thisData = thisWorksheet.getDataRange();
var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
toRange.setValues(thisData.getValues());
}
這個偉大的工程,因爲它拷貝了讓我做編輯的數據,但問題是我不能導入只是我想要的數據。如果我可以使用sql查詢,id可以例如選擇*哪裏城市='邁阿密',但我相信這是不可能的谷歌電子表格在此刻。
因此,我的下一個想法是使用此腳本並在子電子表格上設置過濾器。問題是,當它運行腳本時,它會將整個表單複製回來,如果5個用戶中的任何一個同時更新他們自己的電子表格,則會導致問題,因爲他們會覆蓋彼此的更改。 另一個想法是,因爲每個記錄都有自己的唯一ID#(我有一個名爲ID的列)有沒有辦法告訴活動電子表格更新主表中的行id = masterspreadsheet.id編輯?
任何幫助正確的方向將不勝感激。
可以在谷歌電子表格實際使用查詢,但它是動態的,在數據總是被更新:https://support.google.com/docs/answer/3093343?hl=恩。這是否解決您的問題? – Kriggs
我從單獨的電子表格中提取數據,因此我無法使用Query函數本身。我必須做一個引用數據的導入範圍。所以不幸的是,這對我不起作用。 – User125