python - 如何在 Python 中使用 Google Sheets API 更新多个合并的单元格?
问题描述
我需要使用 Google Sheets API v4(无 gspread)通过 Python 批量更新多个合并单元格(使用空白信息)。我有这个代码:
blank = setValue("") <----- I set a variable with no data to delete all the info that the cell can contains
dataBlank = [
...
{
'range': 'AB83',
'values': blank
}
{
'range': 'BH75:BH82', # <------- I think here is the problem
'values': blank
} ...
]
body = {
'valueInputOption': value_input_option,
'data': dataBlank
}
result = service.spreadsheets().values().batchUpdate(spreadsheetId=registro_id, body=body).execute()
print('{0} celdas borradas - Registro'.format(result.get('totalUpdatedCells')))
def setValue(value):
rvalue = [value]
avalue = [rvalue]
return avalue
它运行,但在工作表中它只更新范围的第一个单元格,并且整个范围不会更新。我尝试使用'range' : 'BH75:BH82'
,'range' : 'Sheet1!BH75:BH82'
但无法更新整个范围。我需要使用批量更新,因为我需要检查性能并且不超过 Google Cloud 的报价限制。
我喜欢这个:
只有第一个单元格被更新。如果我更新单个单元格或没有范围的合并单元格,它可以正常工作,但如果我使用范围更新则不起作用。
解决方案
我相信你的目标如下。
- 您想使用 Sheets API 中的 Method: spreadsheets.values.batchUpdate 方法将 Google 电子表格的第一个选项卡中
zero
的单元格放入。BH75:BH82
- 您想使用 googleapis 和 python 来实现这一点。
为此,这个答案怎么样?
修改点:
- 在 Sheets API 中 Method: spreadsheets.values.batchUpdate 方法的情况下,当您要将值放入单元格
BH75:BH82
时,必须是"values":[["sample"],["sample"],["sample"],["sample"],["sample"],["sample"],["sample"],["sample"]]
。 - 在您的脚本中,
"values":[["sample"]]
使用了。这样,该值仅被放入第一个单元格。我认为这是您的问题的原因。
修改后的脚本:
当您的脚本被修改时,请进行如下修改。
从:'range': 'BH75:BH82',
'values': zero
至:
'range': 'BH75:BH82',
'values': [[value],[value],[value],[value],[value],[value],[value],[value]]
- 不幸的是,从您的脚本中,我无法理解
zero
. 所以我用作value
变量。如果你想放空,请声明value
为""
。 - 这是一个简单的修改。因此,当然,您也可以
[[value],[value],[value],[value],[value],[value],[value],[value]]
使用脚本进行创建。
笔记:
- 如果您想为很多单元格赋值,Sheets API 中的批处理更新方法的 RepeatCellRequest 可能会很有用。参考
参考:
推荐阅读
- kubernetes - 移除 GCP Kubernetes 的默认 CPU 请求和限制
- jmeter - WSO2 API Gateway中API的JMeter负载测试
- html - 将 flex-box 列中的项目与中间项目对齐
- python - 如何使用python在csv文件中逐行读取一列数据
- php - Eloquent 的 belongsToMany 关系与非标准的列名
- php - 如果它们都以相同的字母开头,如何将一个数组值匹配并替换为另一个数组键?
- javascript - observable 中的错误,尝试使用 get 方法
- node.js - 为什么当我运行 Angular/React 项目时它不能在我的本地主机上工作?
- java - 如何使用 HttpClient 将文件上传到 Ubuntu 的特定路径
- kubernetes - 如何在这个 values.yaml 中设置 RBAC?