如果我想发布Google表格电子表格,以便将其嵌入到iframe中的页面上,我会手动执行以下操作:
如何使用前端的JavaScript通过Google表格API以编程方式实现上述目标?我正在我的应用程序中动态生成电子表格,并希望在创建后立即将它们嵌入到页面中。
创建工作表后,我可以动态创建具有必要属性的iframe元素(工作表ID等)。这引发了一个错误。从这个question开始,工作表看起来需要{{1}}属性,但这需要使用Drive API - 我试图避免这种情况。这可以通过Sheets API处理 吗?
答案 0 :(得分:9)
在搜索整个Sheets API,谷歌搜索,以及一般的反省之后,我别无选择,只能包含Drive API并使用它来进行我的出价。这是我提出的解决方案。希望这可以帮助其他人!
将来自Google的此脚本用于index.html
文件中的客户端JS库:
<body>
...
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
</body>
然后是JS的东西:
// Cache the api's into variables.
var sheets = gapi.client.sheets;
var drive = gapi.client.drive;
// 1. CREATE NEW SPREADSHEET
sheets.spreadsheets.create({
properties: {
title: 'new-sheet'
}
}).then(function(newSpreadSheet) {
var id = newSpreadSheet.result.spreadsheetId;
// 2. PUBLISH SPREADSHEAT VIA DRIVE API
drive.revisions.update({
fileId: id,
revisionId: 1
}, {
published: true, // <-- This is where the magic happens!
publishAuto: true
}).then(function() {
// 3. DISPLAY SPREADSHEET ON PAGE VIA IFRAME
var iframe = [
'<iframe ',
'src="https://docs.google.com/spreadsheets/d/',
id,
'/pubhtml?widget=true&headers=false&embedded=true"></iframe>'
].join('');
// We're using jQuery on the page, but you get the idea.
$('#container').html($(iframe));
});
});
答案 1 :(得分:2)
如您所知,目前无法通过Sheets API实现,并且只能通过Drive API(使用https://developers.google.com/drive/v3/reference/revisions/update中记录的PATCH https://www.googleapis.com/drive/v3/files/fileId/revisions/revisionId
请求)。