【问题标题】:Use pygsheets to create a brand-new sheet using the service_file authorization method使用 pygsheets 使用 service_file 授权方法创建一个全新的工作表
【发布时间】:2019-11-29 20:53:51
【问题描述】:

我已经可以使用 open_by_key() 函数编辑现有工作表,但我希望能够创建一个全新的工作表。

当我尝试以下代码时:

import pygsheets

creds_file = "/Users/jerome/audible2googlesheet.json"

gc = pygsheets.authorize(service_file=creds_file)
sh = gc.open("my_1st_public_sheet")
wks = sh.sheet1

# Update a single cell.                                                                                                                                                                                                                                                                                                               
wks.update_value('A1', "some value")

sh.share('', role='reader', type='anyone')

我得到这个异常/错误:

raise SpreadsheetNotFound('找不到标题为 %s 的电子表格。' % title) pygsheets.exceptions.SpreadsheetNotFound:找不到标题为 my_1st_public_sheet 的电子表格。

我错过了什么?

【问题讨论】:

    标签: python google-sheets pygsheets


    【解决方案1】:
    • 您想通过 python 使用 pygsheets 创建新工作表。

    如果我的理解是正确的,那么这个答案呢?根据您的问题,我可以理解为以下两种模式。

    模式一:

    • 您想在现有电子表格中添加新工作表。

    在这种情况下,示例脚本如下。

    示例脚本:

    import pygsheets
    
    creds_file = "/Users/jerome/audible2googlesheet.json"
    
    spreadsheet_key = '###'  # Please set the Spreadsheet ID.
    gc = pygsheets.authorize(service_file=creds_file)
    sh = gc.open("my_1st_public_sheet")
    sh.add_worksheet("sampleTitle")  # Please set the new sheet name.
    

    模式 2:

    • 您想要创建新的电子表格。

    在这种情况下,示例脚本如下。

    示例脚本:

    import pygsheets
    
    creds_file = "/Users/jerome/audible2googlesheet.json"
    
    gc = pygsheets.authorize(service_file=creds_file)
    res = gc.sheet.create("sampleTitle")  # Please set the new Spreadsheet name.
    print(res)
    
    • 在这种情况下,新的电子表格将创建到服务帐户的驱动器中。因此,如果您想在 Google Drive 中查看创建的电子表格,请与您的 Google 帐户共享电子表格。请注意这一点。

    注意:

    • 这些示例脚本假设您已经能够使用 Sheets API 获取和放置电子表格的值。

    参考资料:

    如果我误解了您的问题,我深表歉意。

    补充:

    在以下示例脚本中,将创建新的电子表格并将创建的电子表格与您的帐户共享。

    示例脚本:

    在运行脚本之前,请将您的 Google 帐户电子邮件地址设置为### your email address ###

    import pygsheets
    
    creds_file = "/Users/jerome/audible2googlesheet.json"
    
    gc = pygsheets.authorize(service_file=creds_file)
    res = gc.sheet.create("sampleTitle")  # Please set the new Spreadsheet name.
    createdSpreadsheet = gc.open_by_key(res['spreadsheetId'])
    createdSpreadsheet.share('### your email address ###', role='writer', type='user')
    

    【讨论】:

    • 我想从头开始创建一个全新的整个工作表/文档,而不是将工作表添加到现有工作表中。您在上面说过我需要“与您的 Google 帐户共享电子表格”。我怎么做?可以通过编程方式完成吗?
    • @Jerome Provensal 感谢您的回复。我为我糟糕的英语水平深表歉意。根据您的回复,可以使用模式 2。关于共享创建的电子表格的方法,我又添加了一个示例脚本。你能确认一下吗?如果这不是您想要的结果,我深表歉意。
    • @Jerome Provensal 欢迎。谢谢你让我知道。我很高兴你的问题得到了解决。如果您的问题得到解决,请按接受按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为您的问题和解决方案将对他们有用。如果找不到按钮,请随时告诉我。 stackoverflow.com/help/accepted-answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多