Python Gspread未清除正确的选项卡

Python Gspread未清除正确的选项卡,python,dataframe,google-sheets,google-sheets-api,gspread,Python,Dataframe,Google Sheets,Google Sheets Api,Gspread,我有一个数据框“预算”,我正试图上传到一个沉重的电子表格中,其中有22个选项卡,还有超过1个以某种形式命名的RawData:“RawData>>”、“RawData”、“RawData_TargetCompletion” 我有以下代码: class GoogleSheets(): def __init__(self): google_service_account_path = 'some_path' scopes = ['https://spreadsh

我有一个数据框“预算”,我正试图上传到一个沉重的电子表格中,其中有22个选项卡,还有超过1个以某种形式命名的RawData:“RawData>>”、“RawData”、“RawData_TargetCompletion”

我有以下代码:

class GoogleSheets():
    def __init__(self):
        google_service_account_path = 'some_path'
        scopes = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
        self.credentials = ServiceAccountCredentials.from_json_keyfile_name(google_service_account_path, scopes)
        self.sheets_connection = gspread.authorize(self.credentials)

    def load_spreadsheet(self, spreadsheet_key):
        self.sheet = self.sheets_connection.open_by_key(spreadsheet_key)

    def load_worksheet(self, worksheet_name):
        self.worksheet = self.sheet.worksheet(worksheet_name)

    def clear_range(self, data_range):
        self.sheet.values_clear(data_range)


spreadsheet_key = "this is a spreadsheet key"
worksheet_name = "RawData"
cell_ref = 'A:AT'
google_sheets = sheets.GoogleSheets()
google_sheets.load_spreadsheet(spreadsheet_key)
google_sheets.load_worksheet(worksheet_name)
google_sheets.clear_range(cell_ref)
google_sheets.upload_dataframe(budget)
我有一个问题,在那个沉重的电子表格中,它清除了第一个选项卡(而不是原始数据),并在原始数据表中更新

这完全相同的代码,但使用另一个电子表格_键可以很好地工作,并清除和更新正确的RawData选项卡,而不管该RawData选项卡的位置如何。 但是在这个沉重的部分中,RawData必须是文档中的第一个选项卡,因为清除部分映射不正确,并且总是清除第一个选项卡


您是否在我没有看到的代码中发现了问题,或者在更新繁重的电子表格时遇到了相同的问题?

我相信您的目标如下

  • 您想使用gspread清除范围
  • 您已经能够使用Sheets API
修改点:
  • 当我在gspread的文档中看到
    values\u clear(range)
    时,似乎是gspread.models.Spreadsheet类的方法。并且,
    值的
    范围
    是一个符号。
    • 在脚本中,
      self.sheet.values\u clear('A:AT')
      正在运行。在这种情况下,始终使用第一个选项卡,因为未使用图纸名称。我认为这就是你问题的原因
  • 为了消除您的问题,我建议在
    值\u clear(range)
    符号中使用图纸名称
当上述各点反映到脚本中时,它将变成如下所示

修改脚本: 发件人: 致: 参考资料:

    • 我相信你的目标如下

      • 您想使用gspread清除范围
      • 您已经能够使用Sheets API
      修改点:
      • 当我在gspread的文档中看到
        values\u clear(range)
        时,似乎是gspread.models.Spreadsheet类的方法。并且,
        值的
        范围
        是一个符号。
        • 在脚本中,
          self.sheet.values\u clear('A:AT')
          正在运行。在这种情况下,始终使用第一个选项卡,因为未使用图纸名称。我认为这就是你问题的原因
      • 为了消除您的问题,我建议在
        值\u clear(range)
        符号中使用图纸名称
      当上述各点反映到脚本中时,它将变成如下所示

      修改脚本: 发件人: 致: 参考资料:

      谢谢!成功了@谢谢你的回复。我很高兴你的问题得到了解决。谢谢!成功了@谢谢你的回复。我很高兴你的问题解决了。
      google_sheets.clear_range(cell_ref)
      
      google_sheets.clear_range("'{0}'!{1}".format(worksheet_name, cell_ref))