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

谷歌工作表API Python-清除工作表

洪增
2023-03-14

我想不断更新/重写到谷歌表。不过,我不能只是更新它,而不清除旧的工作表,因为有时更新的行比之前的行和旧的行留在工作表中。

因此,开发者页面上列出的协议是:

{
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": sheetId
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

翻译成python会是这样的,我认为:

requests = [{ 'updateCells': { 'range': { 'sheetId': spreadsheet_id }, 'fields': 'userEnteredValue' } }]

body = { 'requests': requests }
spreadsheet_id='[uniqueIDhere]'

result = service.spreadsheets( ).values( ).batchUpdate(spreadsheetId=spreadsheet_id, body=body ).execute( )

返回错误:

GoogleapClient。错误。HttpError:https://sheets.googleapis.com/v4/spreadsheets/[uniqueIDhere]/values:batchUpdate?alt=json返回“接收到无效的json负载。未知名称“请求”:找不到字段

似乎奇怪的是,“请求”是无效的,因为它就在协议中列出了。不管怎样,还有人能让这个工作吗?谢谢。杰森

共有3个答案

严朝明
2023-03-14

我在使用Gspread时遇到了类似的问题,以下几点对我起到了作用:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
creds = ServiceAccountCredentials.from_json_keyfile_name('example.json', scope)
client = gspread.authorize(creds)

actvsheet = client.open('examplesheet')
sheet = actvsheet.get_worksheet(1)

sheet.clear()
夹谷俊远
2023-03-14
result = service.spreadsheets( ).values( ).batchUpdate(...

应该是:

result = service.spreadsheets( ).batchUpdate(...

我花了太长时间才注意到代码中的相同错误。。。

章增
2023-03-14

找到了不同的方法:

rangeAll = '{0}!A1:Z'.format( sheetName )
body = {}
resultClear = service.spreadsheets( ).values( ).clear( spreadsheetId=spreadsheet_id, range=rangeAll,
                                                       body=body ).execute( )

这很有效。仍然想知道为什么请求updateCells协议不起作用。

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

  • 可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV

  • 我正在重新创建和扩展我以前制作的文档。我已经引入了我最初使用的脚本,并在我认为合适的地方对其进行了调整,以使其在本表中正常工作,但我一定错过了一些东西。可在此处找到涉及的3个电子表格文件的可编辑示例。这些文件是一个样本“价目表”、“目录”(它汇总了所有价目表中的制造商名称,还有一个“目录”选项卡,用于我的一个主要供应商未销售的杂项物品),以及“附录B”,这是我需要帮助的文件。 这份文件是我合同的增

  • 在我看来,GoogleSheetsAPI的append方法(用于从程序向GoogleSheet添加数据的方法)需要一个2d数组。Sam Berlin在这里似乎说了很多Google Sheet API批量更新问题。我想知道是否有人知道这是为什么?

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

  • 我有一个谷歌电子表格,有两张表格,人 如果人员B栏中的单元格与公司A栏中的单元格中的文本匹配,那么我需要将公司B栏的内容添加到人员C栏中 之前的人物表: 公司表: 人员名单如下: 我一直试图使用Stackoverflow上其他地方找到的匹配脚本,但没有成功: 我真的被困住了,知道吗?提前感谢您的任何帮助。