我有一个pandas df,我正在使用xlsx包格式化,目前我可以选择使用xlsx格式化整行或列,但不是特定的单元格我也想在DF之间插入几行。
图片附有我希望excel文件的外观。
以下代码为我提供了图像第1部分的文件。我需要做一些更多的格式化,比如插入新行并用斜体字制作D13和E13。
writer = pd.ExcelWriter('Sample Report Test.xlsx' , engine='xlsxwriter')
df.to_excel(writer , index= False , sheet_name='Sample Report')
workbook = writer.book
worksheet = writer.sheets['Sample Report']
money_fmt = workbook.add_format({'num_format':'$#,##0' , 'font_name':'Batang' })
font_fmt = workbook.add_format({'font_name':'Batang' , 'bold':True })
tot_fmt = workbook.add_format({'num_format':'$#,##0' , 'font_name':'Batang' , 'bold':True })
worksheet.set_column('A:B' , 25 , font_fmt)
worksheet.set_column('C:P' , 15 , money_fmt)
worksheet.set_row(4, None , tot_fmt)
worksheet.set_row(7 , None , tot_fmt)
writer.save()
答案 0 :(得分:3)
您可以将带有偏移量的多个数据框插入到XlsxWriter文件中。请参阅文档中的this example。
在写入单元格后无法格式化单元格(除了列/行格式,请参阅this example)。
如果您需要非常精细的格式化格式,最好直接使用XlsxWriter和数据框中的数据。
有些人在XlsxWriter中使用条件格式来获得他们需要的效果,例如SO answer。但是,这不适用于单个细胞。
答案 1 :(得分:2)
试试这个:
money_italic_fmt = workbook.add_format({'num_format':'$#,##0',
'font_name':'Batang',
'italic':True})
worksheet.write(12, # <-- The cell row (zero indexed).
3, # <-- The cell column (zero indexed).
13, # <-- Value to write
money_italic_fmt # <-- Format
)