首页 > 解决方案 > 有没有办法在 python 中使用 gspread 复制工作表?

问题描述

所以我一直在尝试使用谷歌表格创建一个数据存储(我更容易导航)。我尝试这样做的方法是使用用户 ID 创建一个新工作表,并将我保存在名为“模板”的单独工作表中的信息放入新工作表中。

这是我当前的代码:

newsheet = sh.add_worksheet(title = f"{author}", rows = "152", cols = "2")
for index in range(1, len(savefiletemplate.col_values(1))):
    newsheet.update_cell(index, 1, savefiletemplate.cell(index, 1).value)

author是用户的 ID,sh是我的电子表格,savefiletemplate是我的模板工作表

它给了我一个很长的错误,在复制 90-120 个单元格后我不明白。我想知道这是我的错还是我的 IDE 的错,是否有人知道如何解决它

标签: pythongoogle-sheetsgspread

解决方案


我会尝试这样的事情......

rows = 152
cols = 2
template_data = savefiletemplate.get_all_values()  # this will be a list of lists
newsheet = sh.add_worksheet(title=author, rows=rows, cols=cols)
a1_range = f"A1:{chr(ord('@')+cols)}{rows}"  # A1:B152
newsheet.update(a1_range, template_data)
        

这基本上将您的模板放入列表列表中。然后使用rowsandcols值为范围构建正确的 a1 表示法。然后用 . 更新新工作表中的范围template_data。试一试,看看它是否符合您的要求。


推荐阅读