Не удается добавить лист Excel с помощью xlsxwriter

#python-3.x #excel #pandas #xlsxwriter

#python-3.x #excel #панды #xlsxwriter

Вопрос:

я создаю таблицу на листе Excel, проблема в том, что мой код стирает другие существующие листы, и опция добавления не работает с xlsxwriter

     with pd.ExcelWriter('Template.xlsx', engine='xlsxwriter') as writer:
        df.to_excel(writer, sheet_name='SheetName', startrow=1, header=False, index=False)
        workbook = writer.book
        worksheet = writer.sheets['SheetName']
        (max_row, max_col) = df.shape
        column_settings = [{'header': column} for column in df.columns]
        worksheet.add_table(0, 0, max_row, max_col - 1
                            , {'columns': column_settings
                               ,"name": "TableName"}
                            )
        worksheet.set_column(0, max_col - 1, 12)
    writer.save()
  

Есть решение??

Ответ №1:

На самом деле я обнаружил, что xlsxwriter не может добавить его только для записи (сотрите другие листы, если они существуют). Решение состоит в том, чтобы использовать openpyxl, и это пример кода :

 import openpyxl 
from openpyxl import Workbook        # Module needed for creating new workbook
from openpyxl import load_workbook   # Module needed for loading existing workbook

wb = load_workbook(filename)
ws = wb["sheetName"]

for row in dataframe_to_rows(dataframe, index=False, header=True):
    ws.append(row)
wb.save(filename)