如何使用Pandas在Excel中更改第一行的颜色

时间:2019-02-14 20:27:10

标签: python-3.x pandas

我有一个编写xlsx文件的代码:

...
...
df.to_excel(finalname,index=False,header=False)

示例:

enter image description here

我想用彩色写入excel文件,但仅在第一行,如下图所示:

enter image description here

也许我可以使用 df.style.apply

我尝试过:

result.style.apply('background-color: gray',row=[1], axis=1)

但是它不起作用

style.apply 是正确的方法吗?

如果没有,我如何获得第二张图像的结果?

2 个答案:

答案 0 :(得分:2)

您可以检出python软件包xlwings

这是我设置Excel范围颜色的方法:

import xlwings as xw
df.to_excel(finalname,index=False,header=False)
wb = xw.Book(finalname)

# color is set with an rgb value 
wb.sheets['yoursheet'].range('A').color = (169,169,169)

我之前没有调整文本颜色,但是我敢肯定这是可能的。 xlwings构建在pywin32之上

根据docs,您可以摆脱设置以下内容的麻烦:

wb.sheets['sheet1'].range('A').api.Font.ColorIndex = 3

答案 1 :(得分:1)

我看到了另一个答案,但是您也可以使用df.style()来做到这一点。

您有两个问题。拳头,您使用了错误的语法。其次,您尝试设置数据的第一行而不是文档标题的样式。获得描述的最简单方法是使用CSS选择器。

df.style.set_table_styles([{'selector': 'th', 'props': [('background-color', 'gray')]}])\
    .to_excel('styled.xlsx', engine='openpyxl')

您也没有将其导出到excel,而只是将其渲染。 .to_excel部分告诉它导出。有关更多信息,请参见this link