Skip to content

Commit c52f532

Browse files
update get_excel_with_values logic
1 parent 6cdd227 commit c52f532

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

scripts/download_file.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import gspread
33
from io import BytesIO
44
import logging
5-
from openpyxl import Workbook
5+
from openpyxl import load_workbook
66
import requests
77
from pathlib import Path
88
from google.oauth2 import service_account
@@ -38,10 +38,10 @@ def download_sheet(
3838
) -> bytes | None:
3939
try:
4040
client, access_token = get_sheets_service_and_token(google_cred)
41-
if export_format == "xlsx":
42-
content = get_excel_with_values(client, table_id, sheet_id)
43-
else:
44-
content = export_file(table_id, sheet_id, access_token, export_format)
41+
content = export_file(table_id, sheet_id, access_token, export_format)
42+
43+
if export_format == "xlsx" and content:
44+
content = get_excel_with_values(content)
4545

4646
if not content:
4747
logger.error(f"Ошибка экспорта файла")
@@ -59,22 +59,12 @@ def download_sheet(
5959
logger.error(f"Ошибка при скачивании: {e}")
6060

6161

62-
def get_excel_with_values(
63-
service: gspread.Client, table_id: str, sheet_id: str
64-
) -> bytes:
62+
def get_excel_with_values(content: bytes) -> bytes:
6563
"""
6664
Сохраняет значения (не формулы) листа таблицы в XLSX-файл
6765
"""
68-
spreadsheet = service.open_by_key(table_id)
69-
worksheet = spreadsheet.get_worksheet_by_id(int(sheet_id))
70-
data = worksheet.get_all_values()
71-
72-
wb = Workbook()
73-
ws = wb.active
74-
ws.title = worksheet.title
7566

76-
for row in data:
77-
ws.append(row)
67+
wb = load_workbook(BytesIO(content), data_only=True)
7868

7969
file_stream = BytesIO()
8070
wb.save(file_stream)

0 commit comments

Comments
 (0)