xlsxwriter没有将格式应用于数据框的标题行 – Python Pandas
我正在尝试使用xlsxwriter从数据框中获取一个数据框并创build一个电子表格
我正在试图做一些格式化到标题行,但似乎在该行上工作的唯一格式是行高。 完全相同的格式选项适用于数据框的其他行。
请参阅下面的代码..
将红色(和高度)应用于除标题行(第2行)之外的所有行 – 将红色应用于第0行和第3行,但只将高度应用于第2行
任何帮助将非常感激
import numpy as np import pandas as pd from pandas.io.data import DataReader from pandas import DataFrame from IPython import display import xlsxwriter WorkBookName="test.xlsx" df3=pd.read_csv("https://raw.githubusercontent.com/wesm/pydata-book/master/ch08/tips.csv", sep=',') writer = pd.ExcelWriter(WorkBookName, engine='xlsxwriter') df3.to_excel(writer, sheet_name="sheet",index=False,startrow=2) workbook = writer.book worksheet = writer.sheets["sheet"] worksheet.write(0,0,"text string") worksheet.write(0,1,"text string") worksheet.write(0,2,"text string") worksheet.write(0,3,"text string") color_format = workbook.add_format({'color': 'red'}) worksheet.set_row(0,50,color_format) worksheet.set_row(2,50,color_format) worksheet.set_row(3,50,color_format) writer.save() display.FileLink(WorkBookName)
您正在尝试更改标题的格式,因此您应该先重置默认标题设置
pd.core.format.header_style = None
然后根据需要应用格式
format = workbook.add_format() format.set_align('center') format.set_align('vcenter') worksheet.set_column('A:C',5, format)
这里是完整的工作代码
d=pd.DataFrame({'a':['a','a','b','b'], 'b':['a','b','c','d'], 'c':[1,2,3,4]}) d=d.groupby(['a','b']).sum() pd.core.format.header_style = None writer = pd.ExcelWriter('pandas_out.xlsx', engine='xlsxwriter') workbook = writer.book d.to_excel(writer, sheet_name='Sheet1') worksheet = writer.sheets['Sheet1'] format = workbook.add_format() format.set_align('center') format.set_align('vcenter') worksheet.set_column('A:C',5, format) writer.save()