【问题标题】:How to update spreadsheet using Google Sheets API + Javascript如何使用 Google Sheets API + Javascript 更新电子表格
【发布时间】:2016-02-23 11:06:28
【问题描述】:

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

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

  1. jQuery $.post(...) 来创建文档中描述的 POST 请求但没有成功)
  2. 使用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");
    })
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2017-05-05
    相关资源
    最近更新 更多