首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于pygsheets的问题

关于pygsheets的问题
EN

Stack Overflow用户
提问于 2022-07-09 12:16:43
回答 1查看 160关注 0票数 0

我尝试了三种不同的方法来更新google的值,但是没有一种方法有效,我浏览了pygsheet文档,但仍然找不到解决方案。

代码语言:javascript
运行
复制
import pandas as pd

import pygsheets as pyg

gc=pyg.authorize(service_account_file=r'C:\Users\mingyu\Downloads\heroic-icon-311506-93b9b87f2fed.json')

sht=gc.open_by_url('https://docs.google.com/spreadsheets/d/1sX7Rb6Z9E1_JdG-Uf4HdcjxawgC3RLoRt1m7Akn40DQ/edit?hl=zh-TW#gid=0')
wk_list=sht.worksheets()
wks=sht[0]

cell_list=wks.range('A3:A4')
wks.update_values(cell_list,values=[[0,2]])

然后它就会

代码语言:javascript
运行
复制
InvalidArgumentValue: crange

然后我试着

代码语言:javascript
运行
复制
wks.update_values(cell_list=cell_list,values=[[0,2]])

它显示了

代码语言:javascript
运行
复制
TypeError: list indices must be integers or slices, not list

在那之后,我尝试了田庄。

代码语言:javascript
运行
复制
wks.update_values(crange='A3:A4',values=[[0,2]])

错误信息是

代码语言:javascript
运行
复制
HttpError: <HttpError 400 when requesting https://sheets.googleapis.com/v4/spreadsheets/1sX7Rb6Z9E1_JdG-Uf4HdcjxawgC3RLoRt1m7Akn40DQ/values/%E5%B7%A5%E4%BD%9C%E8%A1%A81%21A1%3AA2?valueInputOption=USER_ENTERED&alt=json returned "Requested writing within range ['工作表1'!A1:A2], but tried writing to column [B]". Details: "Requested writing within range ['工作表1'!A1:A2], but tried writing to column [B]">
代码语言:javascript
运行
复制
wks.update_values('A3:A4',values=[[0,2]])

给我同样的东西

我找到了文档,上面写着'cell_list: List of a :class:Cell对象来更新它们的值‘,那么为什么我不能执行上面的代码呢?

EN

回答 1

Stack Overflow用户

发布于 2022-07-09 23:40:08

修改要点:

  • 从您的脚本中,我认为您可能希望将[[0,2]]的值设置为A3:A4的范围。
    • 在这种情况下,当您想将02的值放到A3:A4中时,[[0,2]]必须是[[0],[2]]
    • 当您想将02的值放到A3:B3中时,A3:A4必须是[[0,2]]A3:B3
    • 我想这可能是你出问题的原因。

当这些要点反映在您的脚本中时,如下所示。

发自:

代码语言:javascript
运行
复制
wks.update_values(cell_list,values=[[0,2]])

至:

如果要将02的值分别放入单元格A3A4,请按以下方式修改。

代码语言:javascript
运行
复制
wks.update_values(crange="A3:A4", values=[[0], [2]])

或者,您也可以将开始单元格范围设置如下。

代码语言:javascript
运行
复制
wks.update_values(crange="A3", values=[[0], [2]])

或者,您可以使用majordim="COLUMNS"

代码语言:javascript
运行
复制
wks.update_values(crange="A3:A4", values=[[0, 2]], majordim="COLUMNS") # or crange="A3"

如果要将02的值分别放入单元格A3B3,请按以下方式修改。

代码语言:javascript
运行
复制
wks.update_values(crange="A3:B3", values=[[0, 2]])

或者,您也可以将开始单元格范围设置如下。

代码语言:javascript
运行
复制
wks.update_values(crange="A3", values=[[0, 2]])

参考资料:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72921284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档