Python Gspread未清除正确的选项卡
我有一个数据框“预算”,我正试图上传到一个沉重的电子表格中,其中有22个选项卡,还有超过1个以某种形式命名的RawData:“RawData>>”、“RawData”、“RawData_TargetCompletion” 我有以下代码: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
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的文档中看到
时,似乎是gspread.models.Spreadsheet类的方法。并且,values\u clear(range)
值的
是一个符号。范围
- 在脚本中,
正在运行。在这种情况下,始终使用第一个选项卡,因为未使用图纸名称。我认为这就是你问题的原因self.sheet.values\u clear('A:AT')
- 在脚本中,
- 为了消除您的问题,我建议在
符号中使用图纸名称值\u clear(range)
- 您想使用gspread清除范围
- 您已经能够使用Sheets API
- 当我在gspread的文档中看到
时,似乎是gspread.models.Spreadsheet类的方法。并且,values\u clear(range)
值的
是一个符号。范围
- 在脚本中,
正在运行。在这种情况下,始终使用第一个选项卡,因为未使用图纸名称。我认为这就是你问题的原因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))