2016-11-17 50 views
-1

在更改工作表時觸發此功能。將Google工作表導出爲公司網絡驅動器

function exportAsxlsx() { 
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
var spreadsheetId = spreadsheet.getId() 
var file   = Drive.Files.get(spreadsheetId); 
var url   = file.exportLinks[MimeType.MICROSOFT_EXCEL]; 
var token   = ScriptApp.getOAuthToken(); 
var response  = UrlFetchApp.fetch(url, { 
    headers: { 
    'Authorization': 'Bearer ' + token 
} 
}); 

var blobs = response.getBlob(); 
var folder = DriveApp.getFoldersByName('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel'); 
if(folder.hasNext()) { 
    var existingPlan1 = DriveApp.getFilesByName('TestGoogle2Excel.xlsx'); 
    if(existingPlan1.hasNext()){ 
    var existingPlan2 = existingPlan1.next(); 
    var existingPlanID = existingPlan2.getId(); 
    Drive.Files.remove(existingPlanID); 
    } 
} else { 
folder = DriveApp.createFolder('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel'); 
} 
folder = DriveApp.getFoldersByName('\\GBC1234.fs1.util.xxint.com\Shared\Projects\Test_Google2Excel').next(); 
folder.createFile(blobs).setName('TestGoogle2Excel.xlsx') 
    } 

會發生什麼事是,它使目錄「\ GBC1234.fs1.util.xxint.com \共享\項目\ Test_Google2Excel」在谷歌驅動器,然後將文件保存在那裏。

我怎樣才能保存到我們公司的驅動器?

+0

Google Apps腳本無法將文件保存到「公司驅動器」。你應該使用別的東西。 –

回答

0

您將需要一個本地託管的「客戶端」,將所述文件從已知驅動器位置下載到網絡。

一旦你開始思考這個問題,客戶端就可以與你描述的工作流上的許多點進行交互。

I.e. 1.如上所述,polls google drive查看是否創建並下載了輸出xlsx。 Drive API 2.輪詢驅動器本身的表單,然後觸發應用程序腳本執行轉換。 Apps腳本執行API 3.完全跳過這些並直接與表單交互。表格API

在每種情況下,您都希望緩存原始工作表數據的校驗和,以便僅在事情發生變化時才動作。 (有多種方法可以執行此操作)