另一個選項(以及最後使用的選項)是手動創建一個Google Sheet文件,並將所有格式預先配置爲模板。然後,而不是建立在用戶的谷歌雲端硬盤中的新的電子表格文檔,複製的模板,像這樣:
var config = require('./config');
var google = require('googleapis');
function createSheetFromTemplate(user, templateFileId, done) {
var oauth2Client = new google.auth.OAuth2(config.google.clientId, config.google.clientSecret);
oauth2Client.setCredentials({
access_token: user.google.token,
refresh_token: user.google.refreshToken,
});
var drive = google.drive({
version: 'v2',
auth: oauth2Client
});
drive.files.copy({
fileId: templateFileId,
resource: {
title: 'New Google Sheet',
parents: [{
id: 'root'
}]
}
}, function(err, response) {
if (err) done(err)
initializeSpreadsheet(response.id, user, done);
});
}
在該代碼中,templateFileId是您共享模板的文件ID。您可以通過多種方式從共享模板文件中獲取此fileId,但快捷方式只是在分享時將其從URL中複製粘貼出來。
例如,如果共享的網址是:
https://docs.google.com/spreadsheets/d/1234567890abcdefghijklmnop/edit?usp=sharing
然後將文件ID 1234567890abcdefghijklmnop
在我來說沒有什麼私人的模板本身,所以我只是共享它與'具有鏈接的任何人'配置爲'可以查看',如下所述:
https://support.google.com/drive/answer/2494886
如果您需要保持模板文件的內容爲私密,那麼您需要找到一些方法來確保由config.google.clientId指定的帳戶有權訪問它。
希望有幫助!
感謝您的回覆。我知道沒有文檔記錄的方式,但Smartsheet必須以某種方式進行。也許是一個私人API?也許不是你能透露的東西。 – tbeseda
這不再是事實。有關更多詳細信息,請參閱上述答案 – wescpy