2016-04-19 9 views
1

xlsxwriterでExcelにパンダDataFrameを保存しています。最初に、いくつかの書式を列に追加しています(たとえば、フォントの変更など)。次に、いくつかの行の背景色を変更したいと思います。しかし、set_row関数を追加すると、すべての列の形式はなくなります。それを組み合わせる方法はありますか?xlsxwriterは行と列のフォーマットと交差する

import pandas as pd 

data = pd.DataFrame({'test_data': [1,2,3,4,5]}) 
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') 

pd.core.format.header_style = None 

data.to_excel(writer, sheet_name='test', index=False) 

workbook = writer.book 
worksheet = writer.sheets['test'] 

font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10}) 

worksheet.set_column('A:A', None, font_fmt) 

zebra = workbook.add_format({'bg_color': 'green'}) 

for index in range(5): 
    if index % 2 == 0: 
     worksheet.set_row(index+1, None, zebra) 

writer.save() 

答えて

1

これは助けなければならない。

enter image description here

import pandas as pd 

data = pd.DataFrame({'test_data': [1,2,3,4,5]}) 
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') 

pd.core.format.header_style = None 

data.to_excel(writer, sheet_name='test', index=False) 

workbook = writer.book 
worksheet = writer.sheets['test'] 

formatdict = {'font_name': 'Calibri', 'font_size': 10, 'font_color':'red'} 
font_fmt = workbook.add_format(formatdict) 

worksheet.set_column('A:A', None, font_fmt) 

zebra = workbook.add_format(formatdict) 
zebra.set_bg_color('green') 

for index in range(1,6,2): 
     worksheet.set_row(index, None, zebra) 

writer.save() 

は、次の出力を作成しなければなりません