#mysql #excel #pandas #dataframe #openpyxl
#mysql #excel #панды #фрейм данных #openpyxl
Вопрос:
Я пытаюсь получить данные из базы данных mysql и поместить их в шаблон Excel (с помощью макросов).
Шаблон имеет несколько листов.Я хочу поместить данные в определенный лист и конкретную ячейку (B2), поскольку лист уже содержит данные. Код, который я использую, является:
wb= openpyxl.load_workbook('C:/Users/Olav/Desktop/Xenos/Nieuw.xlsx')
ws = wb['Dump Pickloc - del. web']
picklocaties = "SELECT Artikelnummer, Locatie,PICKZONE FROM picklocaties WHERE PICKZONE in ('BASIS','HL')"
df = pd.read_sql(sql=picklocaties, con=mydb)
rows = dataframe_to_rows(df)
for r in dataframe_to_rows(df, index=False, header=False):
ws.append(r)
Я попытался использовать to_excel, но это просто удаляет все.
Шаблон, в который я помещаю данные, выглядит следующим образом.
Было бы здорово, если бы этот код работал, но у него нет такой опции:
for r in dataframe_to_rows(df, index=False, header=False, startrow=1, startcol=1):
ws.append(r)
Вау, я на полпути, вау, живу молитвой.
Эти коды заставляют меня на полпути. Теперь я получаю столбцы там, где хочу, не испортив все остальное. Но по какой-то причине остальные данные не отображаются.
for col, text in enumerate(df, start=2):
ws.cell(column=col,row=2, value=text)
Комментарии:
1. это? xlsxwriter.readthedocs.io/example_pandas_positioning.html
2. Я попробовал это, и это удаляет все остальные листы и удаляет существующий текст, который находится на листе.