当前位置: 首页 > 知识库问答 >
问题:

通过Google Sheets API更新我的数据时出错

籍星汉
2023-03-14

我想通过Google Sheets API更新我的Google工作表数据。它看起来像连接到谷歌的服务器和发送请求成功。但是我的谷歌表格数据没有更新。回答是:result.updated细胞是未定义的。我哪里做错了?

function listMajors(auth) {
    var body = {
        values: [["2"]]
    };
    sheets.spreadsheets.values.update({
        spreadsheetId: '{MyGoogleSheetsId}',
        range: "table2!K2"+"?valueInputOption=RAW",
        majorDimension:'ROWS',
        auth: auth,
        resource: body
    }, function(err, result) {
        if(err)
            console.log(err);
        else 
            console.log('updateRange: '+result.updatedRange);
            console.log('updatedCells: '+result.updatedCells);
            console.log('updatedRows '+result.updatedRows);
        });
    }
}

范围的响应值是正常的,但另一个的响应是未定义的,尽管服务器已收到我的请求。我的谷歌表仍然没有更新。

共有1个答案

於乐语
2023-03-14

这次修改怎么样?

  • 请将majordmension的属性放入资源对象
function listMajors(auth) {
  var body = {
    majorDimension: "ROWS", // Added
    values: [["2"]],
  };
  sheets.spreadsheets.values.update({
    spreadsheetId: '{MyGoogleSheetsId}',
    range: "table2!K2", // Modified
    valueInputOption: "RAW", // Modified
    auth: auth,
    resource: body,
  }, function(err, result) {
    if (err) {
      console.log(err); // or console.log(err.errors);
      return;
    }
    console.log('updateRange: '+result.data.updatedRange); // Modified
    console.log('updatedCells: '+result.data.updatedCells); // Modified
    console.log('updatedRows '+result.data.updatedRows); // Modified
  });
}
  • 这个修改过的脚本假设了以下几点。
  • 电子表格。价值观更新

在我的环境中,我确认这个修改过的脚本有效。如果这在你的环境中不起作用,我很抱歉。

在我的环境中,我使用27.0版的googleapis确认修改后的脚本工作正常。0和最新版本(35.0.0)。不幸的是,我无法复制你的情况。所以我想提出另一种方法。

此脚本使用values.update工作表API的方法更新电子表格。此脚本使用脚本的auth。使用此脚本时,请将listMajors(auth)中的脚本修改为以下脚本。

function listMajors(auth) {
  const request = require('request');

  const spreadsheetId = '{MyGoogleSheetsId}';
  const range = "table2!K2";
  auth.getRequestHeaders()
  .then(function(e) {
    var body = {
      majorDimension: "ROWS",
      values: [["2"]],
    };
    var options = {
      uri: `https://sheets.googleapis.com/v4/spreadsheets/${spreadsheetId}/values/${range}?valueInputOption=RAW`,
      method: "put",
      headers: e,
      json: body,
    };
    request(options, function(err, res, result){
      if (err) {
        console.log(err);
        return;
      }
      console.log(result);
    });
  });
}
 类似资料:
  • 我已经成功地使用突变创建了数据,但当我更新该数据时,我收到了这个错误 变量“输入”已强制非Null类型“Int! 下面是我的查询模式 这是更新查询 下面是调用API的代码。 在中,我将更新查询发送到我放置数据的位置

  • 问题内容: 我有一个WCF服务,当数据库发生更改时(SQL Server 2005),它需要通知其客户端。只要我找到一种将任何更改通知我的 服务 的方法,这相对容易实现。我可能可以在表上创建数据库触发器,并让该触发器启动一个通知我的服务的小型服务客户端,但是我想知道是否有更好的方法可以做到这一点?让服务轮询数据库中的更改将是一个可行的解决方案,但是我不确定采用哪种最佳方法(并且最好向我的服务发送通

  • 我正在更新APIendpoint中的数据。正如我所说,我使用表单请求验证将验证与控制器分开。 这适用于存储请求。 但是,当我试图更新下面提到的单个数据时,响应返回以下响应数据。 因为,数据已经存储在数据库中。当我发送更新数据的请求时...应该返回更新的数据。但是,它不返回。 需要帮助来解决这个问题。 正文中的JSON数据: 当前响应: 问题要求: 更新:

  • 我试图在ProductFeature表中插入product对象。但我做不到。如何在下面的impex标题中插入值?

  • 本文向大家介绍Vue2.X 通过AJAX动态更新数据,包括了Vue2.X 通过AJAX动态更新数据的使用技巧和注意事项,需要的朋友参考一下 最近在做一个跟美团同样一套预约系统,由于一个商家会有很多主题,而每个主题下面会有很多场次。 那怎么在一个页面把这些数据很好的动态展示出来呢?我首先想到了VUE的动态绑定数据。 由于第一次使用VUE,很多东西不懂,只能靠百度。服务器端返回的数据直接是JSON数据

  • 表单提交不起作用。当我在弹出窗体中单击更新按钮时,页面将重新加载,数据不会更新 这是脚本$(文档)。关闭('click','updatepro')$(文件)。在('click','updatepro',function()上{ }); 这是我的控制器公共功能更新(请求$Request,$id){ 这是route::post('/update','GetdataController@update')