#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)