我有一个编写xlsx文件的代码:
...
...
df.to_excel(finalname,index=False,header=False)
示例:
我想用彩色写入excel文件,但仅在第一行,如下图所示:
也许我可以使用 df.style.apply ,
我尝试过:
result.style.apply('background-color: gray',row=[1], axis=1)
但是它不起作用
style.apply 是正确的方法吗?
如果没有,我如何获得第二张图像的结果?
答案 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。