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

如何更新多个单元格在谷歌工作表通过工作表Api?

班泽语
2023-03-14

我在PHP服务器中使用以下代码更新单元格中的值A4

$values = array(
    array('1234'),
    array('abcd')
);

$range = array(array('Sheet1!A4'),array('Sheet1!A7'));

$data = [];
$data[] = new Google_Service_Sheets_ValueRange([
    'range' => $range,
    'values' => $values
]);
// Additional ranges to update ...
$body = new Google_Service_Sheets_BatchUpdateValuesRequest([
    'valueInputOption' => $valueInputOption,
    'data' => $data
]);
$result = $service->spreadsheets_values->batchUpdate($spreadsheetId, $body);

运行此请求时,收到以下错误:

"error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"range\" at 'data[0]': Proto field is not repeating, cannot start list.",
    "errors": [
      {
        "message": "Invalid JSON payload received. Unknown name \"range\" at 'data[0]': Proto field is not repeating, cannot start list.",
        "reason": "invalid"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

在PHP中,一次更新多个不连续单元格的GoogleSheetsAPI请求的正确方法是什么?

共有1个答案

翁昊乾
2023-03-14

通过以以下格式发布数据解决了此问题:

$data = [
    [
        'range'=> 'Sheet1!A4',
        'values'=> array(
        array('1234')
        )
    ],[
        'range'=> 'Sheet1!A7',
        'values'=> array(
        array('abcd')
        )
    ]
];
// Additional ranges to update ...
$body = new Google_Service_Sheets_BatchUpdateValuesRequest([
    'valueInputOption' => 'USER_ENTERED',
    'data' => $data
]);
$result = $service->spreadsheets_values->batchUpdate($spreadsheetId, $body);
 类似资料:
  • 可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV

  • 我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感

  • 此函数工作正常。当当前工作表不是Google表单响应工作表时。我正在使用(每分钟)触发器 图像:沙子数据(主数据)表至(共享数据1)表 我正在寻找一个,当用户提交的谷歌表格的状态是(支付),数据应该在第二页,这是(shareData1) 这里的问题是,当我使用谷歌表单响应表时,这个函数将不再工作。它显示了一个错误。错误图像 在降级的错误图像中,我手动运行此函数,相同的错误显示在AppScript面

  • 我想不断更新/重写到谷歌表。不过,我不能只是更新它,而不清除旧的工作表,因为有时更新的行比之前的行和旧的行留在工作表中。 因此,开发者页面上列出的协议是: 翻译成python会是这样的,我认为: 返回错误: GoogleapClient。错误。HttpError:https://sheets.googleapis.com/v4/spreadsheets/[uniqueIDhere]/values:

  • 我有一个主谷歌表,有五列,每天自动更新。 同一文档在主表中有三种类型事件的对应表:ABC、DEF和GHI。这些图纸中包含现有值。 我想谷歌应用程序脚本只追加唯一的和新的价值观,从Value1到相应的事件表编辑的主表。例子: 表ABC 工作表DEF 床单GHI 它实际上并不取决于日期,而是查看相应表格中已经存在的内容。 我是谷歌应用脚本的完全初学者。我研究了其他解决方案,我所做的最大努力是找到如何从

  • 我尝试使用“读取多个范围”示例: https://sheets.googleapis.com/v4/spreadsheets/{SpreadsheetID}/values:batchGet?范围=表1!B:B 来自:Google Sheets API v4示例我用我的电子表格ID替换了"spreadsheetId"。但当我发送GET请求(通过邮递员)我收到: 比我以前https://develop