BigQuery в Excel с помощью Python добавляет нежелательные черные линии

# #python #excel #pandas #dataframe #google-bigquery

Вопрос:

Я написал скрипт на python для вывода данных из Bigquery в шаблон excel. Однако этот скрипт автоматически добавляет черную рамку ко всем диаграммам и удаляет все текстовые поля. Есть ли способ предотвратить это?

Установка:

 import datetime
exec_start=datetime.datetime.now()

from google.cloud import bigquery
import pandas as pd
import pyarrow
import pydata_google_auth
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
credentials = pydata_google_auth.get_user_credentials(
    ['https://www.googleapis.com/auth/bigquery'],
)
from google.oauth2 import service_account
project_id = 'bigquery-analytics-workbench'
client = bigquery.Client(project = project_id, credentials=credentials)
 

Загрузить шаблон Excel:

 file_path='Report - Feb 2021.xlsx'
book=load_workbook(file_path)
writer = pd.ExcelWriter(file_path, engine='openpyxl')
writer.book = book
sheet_name="Ranking"
sheet=book[sheet_name]
 

Загрузите запрос из текстового файла, запустите его в BigQuery и сохраните результат во фрейме данных:

 with open('Query.sql') as q:
    query = q.read()
new_query_job = client.query(query)
df=new_query_job.result().to_dataframe()
 

Удаление ранее существовавших данных в шаблоне excel:

 row_start=2
col_start=14
for c_idx, col in enumerate(df.columns,col_start):
    for r_idx in range(row_start,20001):
        sheet.cell(row=r_idx, column=c_idx, value="")
 

Запишите фрейм данных в шаблон excel:

 rows=dataframe_to_rows(df,index=False)
for r_idx, row in enumerate(rows,row_start):
    for c_idx, col in enumerate(row,col_start):
        sheet.cell(row=r_idx, column=c_idx, value=col)
 

Конец:

 writer.save()
writer.close()

exec_end=datetime.datetime.now()
exec_time=exec_end-exec_start
print('exec_start:' str(exec_start) 'nexec_end:' str(exec_end) 'nexec_time:' str(exec_time))
 

Сценарий не предполагает никаких манипуляций с диаграммами или текстовыми полями. Может ли это произойти из-за некоторых настроек библиотеки openpyxl по умолчанию?

Комментарии:

1. Переформатируйте заголовок. т. е. «BigQuery в excel добавляет нежелательные черные строки» Коротко, кратко и об удаленных текстовых полях люди узнают об этой 2-й цели, читая основной вопрос. Я приду и помогу, как только освобожусь. 😉 Кроме того, уменьшите объем текста, если сможете. Меньше значит больше, наслаждайтесь!