可以用pandas的excel writer设置字体名吗?
以下是我的尝试:

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对象后,我可以在哪里传递它?

最佳答案

更新:使用类似于@miradulo's solution的解决方案,我们可以使其适用于不同版本的熊猫:

try:
    import pandas.io.formats.excel as fmt_xl     # version >= 0.20
except ImportError:
    try:
        import pandas.formats.format as fmt_xl   # 0.18 <= version < 0.20
    except ImportError:
        import pandas.core.format as fmt_xl      # version < 0.18

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

fmt_xl.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

09-16 19:28