如何在python中使用xlsx包格式化excel中的特定单元格

时间:2017-01-10 11:34:57

标签: python pandas xlsxwriter

我有一个pandas df,我正在使用xlsx包格式化,目前我可以选择使用xlsx格式化整行或列,但不是特定的单元格我也想在DF之间插入几行。

图片附有我希望excel文件的外观。

以下代码为我提供了图像第1部分的文件。我需要做一些更多的格式化,比如插入新行并用斜体字制作D13和E13。 enter image description here

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

2 个答案:

答案 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
)
相关问题