2013-08-07 93 views
1

我有一個Google雲端硬盤文檔,它使用Google Apps腳本將值寫入Google雲端硬盤電子表格。以編程方式編輯Google雲端硬盤文檔中的腳本

與文檔相關的腳本看起來很像這樣的:

// must change value to actual spreadsheet ID 
RobProject.spreadsheetID = "spreadsheetID"; 

function onOpen() 
{ 
    // do stuff; 
} 

每次我創建一個電子表格及相關文件,我手動價值spreadsheetID更改爲電子表格的ID,這樣的文件,知道哪些電子表格,他們應該寫他們的價值觀

我想要一個編程方式來將spreadsheetID的正確值填入文檔的腳本中。

當我搜索「以編程方式編輯腳本」時,我獲得了創建Google Apps腳本的教程,而不是使用腳本編輯腳本。有沒有辦法使用Google Apps腳本編輯Google Apps腳本?

回答

2

如果我理解正確,您正在處理文檔和電子表格。該文件需要知道電子表格的ID。

有一些方法可以通過API訪問Google Apps腳本代碼,但這僅適用於獨立項目,不適用於容器綁定腳本(不幸的是)。

您可以考慮對文檔和電子表格使用命名約定,以便您可以使用Drive服務從文檔獲取電子表格(DriveApp.getFilesByName())。或者可能按文件夾(DriveApp.getFoldersByName(),folder.getFiles())組織它們。

如果要將電子表格ID存儲在項目屬性中,可以在文檔中構建一個用戶界面,讓用戶在Drive中打開文件列表並選擇關聯的電子表格,然後存儲Id(ScriptProperties。的setProperty( 'SpreadsheetId'))。

+0

按文件夾組織實際上是我最終做到的。謝謝! –

1

不要忘記,onOpen有一個參數。你可以使用下面的代碼:

// Define global variable somewhere 
RobProject = {}; 

function onOpen(e) { 

    RobProject.sSheet = e.source; // maybe the spreadsheet object is as useful as the ID 
    RobProject.spreadsheetID = e.source.getId(); 

    // do stuff; 
} 

請爲了你自己的緣故,不要試圖編寫自修改代碼。

相關問題