首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pygsheets / google批量更新的问题/问题

使用pygsheets / google批量更新的问题/问题
EN

Stack Overflow用户
提问于 2021-02-05 18:36:01
回答 2查看 1K关注 0票数 0

好吧,我刚接触过蟒蛇,但是.我真的很喜欢它。我已经想了一段时间了,以为有人能帮我比我了解得多。

因此,我想做的是使用pygsheets,并将更新与一个api调用和多个api调用结合起来。我一直在寻找例子或想法,并发现如果你取消链接和链接它会这样做吗?我试过了,它只加速了一点点,然后我查看了一下,您可以使用update.values vs update.value。我已经将它用于类似于这个wk1.update_values(' a2:c4 ',[1,2,3,4,5,6,7,8,9])的工作,但是如果您希望更新在特定的单元格位置而不是像2:C4这样的范围内呢?我很感激事先提出的任何建议。

更新

代码语言:javascript
复制
import pygsheets

gc = pygsheets.authorize() # This will create a link to authorize 

#  Open spreadsheet  

GS_ID = ''
File_Tab_Name = 'File1'
Main_Topic = 'Main Topic'
Actual_Company_Name = 'Company Name'
Street = 'Street Address'
City_State_Zip = 'City State Zip'
Phone_Number = 'Phone Number'


# 2. Open spreadsheet by key
sh = gc.open_by_key(GS_ID)

sh.title = File_Tab_Name
wk1 = sh[0]
wk1.title = File_Tab_Name
#wk1.update_values('A2:C4',[[1,2,3],[4,5,6],[7,8,9]])  
wk1.update_values([['a1'],['h1'],['i3']],[[Main_Topic],[Actual_Company_Name],[Street]])   ### is this possible
#wk1.unlink()
#wk1.title = File_Tab_Name
#wk1.update_value("a1",Main_Topic)  ###Topic
#wk1.update_value("h1",Actual_Company_Name)  ###Company Name
#wk1.update_value("i3",Street)  ###Street Address
#wk1.update_value("i4",City_State_Zip)  ###City State Zip
#wk1.update_value("i5",Phone_Number)   ### Phone Number
#wk1.link() # will do all the updates
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-05 22:04:14

据我所知,您希望对更新值进行批处理。您可以使用update_values_batch函数。

代码语言:javascript
复制
wks.update_values_batch(['A1:A2', 'B1:B2'], [[[1],[2]], [[3],[4]]])
# or
wks.update_values_batch([((1,1), (2,1)), 'B1:B2'], [[[1,2]], [[3,4]]], 'COLUMNS')
# or
wks.update_values_batch(['A1:A2', 'B1:B2'], [[[1,2]], [[3,4]]], 'COLUMNS')

医生在这里

注意:将pygsheets更新为最新版本或从gitub安装

代码语言:javascript
复制
pip install --upgrade https://github.com/nithinmurali/pygsheets/archive/staging.zip
票数 0
EN

Stack Overflow用户

发布于 2021-02-05 21:00:29

不幸的是,pygsheets没有批量更新多个范围的方法。相反,您可以使用扩展

扩展有batch_update方法,您可以在其中一次更新多个单元格或范围。

示例:

代码:

代码语言:javascript
复制
import gspread

gc = gspread.service_account()
sh = gc.open_by_key("insert spreadsheet key here").sheet1
sh.batch_update([{
    'range': 'A1:B1',
    'values': [['42', '43']],
}, {
    'range': 'A2:B2',
    'values': [['44', '45']],
}])

输出:

参考文献:

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

https://stackoverflow.com/questions/66068762

复制
相关文章

相似问题

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