Панды и xlsxwriter: как создать новый лист без экспорта данных? - PullRequest
0 голосов
/ 18 марта 2019

Если я вызываю модуль xlsxwriter напрямую, очень легко создать новый лист в новом файле и записать его в ячейки, например ::

import xlsxwriter
workbook = xlsxwriter.Workbook('test 1.xlsx')
wks1=workbook.add_worksheet('Test sheet')
wks1.write(0,0,'some random text')
workbook.close()

Но мой вопрос: как я могу создать новый лист, используя объект Pandas.ExcelWriter? Объект может создать новый лист при экспорте фрейма данных, но что будет , если я этого не сделаю? У вас есть какие-либо кадры для экспорта?

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

import pandas as pd
writer = pd.ExcelWriter('test 2 .xlsx',  engine='xlsxwriter')
df=pd.DataFrame()
df.to_excel(writer, 'new sheet', index=False, startrow=0,startcol=0)
writer.sheets['new sheet'].write(0,0,'some random text')
writer.close()

Есть ли другой способ? add_worksheet (), по-видимому, является методом только класса книги, а не ExcelWriter

1 Ответ

1 голос
/ 18 марта 2019

Я не вижу ничего плохого в том, как вы это делаете, но вы также можете использовать объект книги XlsxWriter из ExcelWriter следующим образом:

writer = pd.ExcelWriter('test 2 .xlsx', engine='xlsxwriter')

workbook = writer.book
worksheet = workbook.add_worksheet('new sheet')
worksheet.write(0, 0, 'some random text')
...