Мне нужно загрузить таблицу Excel из Google Docs через Gspread, а затем несколько раз мне нужно будет прочитать значения разных ячеек в нотации 'A1' . Таким образом, я не могу просто получить электронную таблицу и затем вызвать val = worksheet.acell('B1').value
, потому что сценарий зависнет из-за слишком большого количества вызовов API. Мое решение на данный момент:
def download_hd_sheet():
worksheet = gc.values().get(spreadsheetId=excel_id, range='variables', valueRenderOption='FORMULA').execute()['values']
df = pd.DataFrame(worksheet)
writer = pd.ExcelWriter("Variables.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', index=False, header=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
writer.save()
book = openpyxl.load_workbook('Variables.xlsx', data_only=False)
global hd_sheet
hd_sheet = book.active
Пока что я делаю:
- Я загружаю значения из рабочего листа.
- Преобразуйте его (список списков) в pandas фрейм данных.
- Затем я записываю df в файл .xlsx.
- Я читаю файл .xlsx в глобальную переменную
Мне кажется, что я делаю так много всего лишь для того, чтобы добиться чего-то, что можно сделать двумя строками. Пожалуйста, дайте мне знать, что было бы эффективнее, чем указано выше.