python - xlsxwriter 未将格式应用于数据框的标题行 - Python Pandas

标签 python excel pandas xlsxwriter

我正在尝试获取数据框并使用 xlsxwriter 从该数据框创建电子表格

我正在尝试对标题行进行一些格式化,但似乎对该行有效的唯一格式是行高。完全相同的格式设置选项适用于数据框的其他行。

请看下面的代码..

红色(和高度)应用于除标题行(第 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()

关于python - xlsxwriter 未将格式应用于数据框的标题行 - Python Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447606/

相关文章:

python - 将字符串转换为字典列表

python - 如何对数据框中的 groupby 行应用计算并将结果 append 到数据框的底部?

python - 如何使用正则表达式语法从给定列的文本中删除 "ellipsis"?

python - 在 Pandas Dataframe 中追加或添加行

VBA 代码在完成后停止运行当前代码

python-无法使用 Homebrew 安装的模块?

python - 如果可以的话,如何强制 Socket 中的 recv() 不将我的十六进制值转换为 ASCII(python)

python - 如何迭代 Pandas Dataframe 中的行

excel - Excel 中用于 CSV 导入的相对路径

c# - Oledb 阅读器无法正确读取 excel 文件