【问题标题】:How to update spreadsheet using Google Sheets API + Javascript如何使用 Google Sheets API + Javascript 更新电子表格
【发布时间】:2016-02-23 11:06:28
【问题描述】:
我有一个小型 javascript 网站,它从我的 google 电子表格中获取数据并将这些数据显示给最终用户。我还想最终更新这个电子表格(例如插入一些行),但我完全坚持下去了。
要从工作表中检索数据,我使用this document。它还包含一些有关更新电子表格的信息,但我不确定这是否有效。
我试过了:
- jQuery $.post(...) 来创建文档中描述的 POST 请求但没有成功)
- 使用Postman app 创建请求 - 得到“找不到页面”响应
谁能帮我解决这个问题? :'(
【问题讨论】:
标签:
javascript
jquery
google-sheets
google-spreadsheet-api
【解决方案1】:
要使用JavaScript 更新Google 电子表格,您需要使用Drive REST API
以下是更新电子表格的代码
function updateFile(fileId, fileMetadata, fileData, callback) {
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
var reader = new FileReader();
reader.readAsBinaryString(fileData);
reader.onload = function(e) {
var contentType = fileData.type || 'application/octet-stream';
var base64Data = btoa(reader.result);
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(fileMetadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
base64Data +
close_delim;
var request = gapi.client.request({
'path': '/upload/drive/v3/files/' + fileId,
'method': 'PATCH',
'params': {
'uploadType': 'multipart',
'alt': 'json'
},
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
},
'body': multipartRequestBody
});
if (!callback) {
callback = function(file) {
console.log(file)
};
}
request.execute(callback);
}
}
您可以使用以下代码调用updateFile函数。
var blob = new Blob(['Cell Text 1,Cell Text 2'],{contentType:'text/plain'});
updateFile(SHEET_ID,'',blob,function(){
alert("Updated document");
})