2017-04-17 805 views
2

是否可以使用熊猫的Excel作家设置字体名称?熊猫`to_excel`设置字体名称

这里是我的尝试:

import pandas as pd 
from pandas.io.excel import ExcelWriter 

df = pd.DataFrame([[1,2,3],[4,5,6]]) 
writer = ExcelWriter("test.xlsx") 
writer.set_font_name("Arial") # this would be ideal, but no such method exists 

format = writer.book.add_format({"font_name": "Arial"}) 
df.to_excel(writer) # format is not applied. Need to pass `format` object somewhere 

writer.close() 

我在哪里可以传递xlsxwriter.format.Format对象一旦被创造出来的?

回答

2

试试这个:

df = pd.DataFrame([[1,2,3],[4,5,6]], columns=list('abc')) 

pd.formats.format.header_style = None 

writer = pd.ExcelWriter("d:/temp/test.xlsx") 

df.to_excel(writer, index= False) 

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

fmt = writer.book.add_format({"font_name": "Arial"}) 
worksheet.set_column('A:Z', None, fmt) 
worksheet.set_row(0, None, fmt) 

writer.save() 

XlsxWriter文档:Working with Python Pandas and XlsxWriter

+0

这几乎是完美的:它的工作原理,但在所有的标题样式:我仍然得到默认的大熊猫大胆宋体,甚至与线你建议('pd.formats.format.header_style = None')。我还试图在创建编写器之前定义标题样式,但我仍然得到相同的结果。 – gozzilli

+0

@gozzilli,它适合我。你的Pandas版本是什么? – MaxU

+0

0.19.2在MacOSX上 – gozzilli