如何使用Google Sheets API + Javascript更新电子表格

How to update spreadsheet using Google Sheets API + Javascript

本文关键字:Javascript 更新 电子表格 API 何使用 Google Sheets      更新时间:2023-09-26

我有一个小型的javascript网站,它从我的谷歌电子表格中获取数据并将这些数据显示给最终用户。我也想最终更新这个电子表格(例如插入一些行),但我完全坚持下去。

为了从工作表中检索数据,我使用此文档。它还包含有关更新电子表格的一些信息,但我不确定这是否有效。我试过了:

  1. jQuery $.post(...) 按照文档中的说明创建一个 POST 请求,但没有成功)
  2. 使用邮递员应用程序创建请求 - 获得"找不到页面"响应

谁能帮我解决这个问题?:'(

要使用 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");
})