Как создать таблицу Excel ** с помощью pandas.to_excel ()? - PullRequest
0 голосов
/ 10 октября 2019

Требуется достичь этого программным путем из кадра данных: enter image description here

https://docs.microsoft.com/en-us/power-bi/service-admin-troubleshoot-excel-workbook-data

1 Ответ

1 голос
/ 10 октября 2019

Вы не можете сделать это с to_excel. Обходной путь - открыть сгенерированный файл xlsx и добавить туда таблицу с openpyxl :

import pandas as pd

df = pd.DataFrame({'Col1': [1,2,3], 'Col2': list('abc')})

filename = 'so58326392.xlsx'
sheetname = 'mySheet'
with pd.ExcelWriter(filename) as writer:
    if not df.index.name:
        df.index.name = 'Index'
    df.to_excel(writer, sheet_name=sheetname)

import openpyxl
wb = openpyxl.load_workbook(filename = filename)
tab = openpyxl.worksheet.table.Table(displayName="df", ref=f'A1:{chr(len(df.columns)+64)}{len(df)+1}')
wb[sheetname].add_table(tab)
wb.save(filename)

Обратите внимание, что все заголовки таблицы должны быть строками. Если у вас есть безымянный индекс (что является правилом), первая ячейка (A1) будет пустой, что приведет к повреждению файла. Чтобы избежать этого, присвойте своему индексу имя (как показано выше) или экспортируйте фрейм данных без индекса, используя:

df.to_excel(writer, sheet_name=sheetname, index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...