如何在openpyxl 2.5.4中创建自定义TableStyleInfo对象?

时间:2018-07-13 03:13:08

标签: python openpyxl

我第一次使用openpyxl,到目前为止,我已经能够使用内置的表格样式来获取它来创建工作簿:

import openpyxl

style = openpyxl.worksheet.table.TableStyleInfo(name='TableStyleLight9', showRowStripes=False)
table = openpyxl.worksheet.table.Table(ref='A1:' + last_cell.coordinate, displayName='MyTable', tableStyleInfo=style)
ws.add_table(table)

但是,我想通过添加一个自定义TableStyleInfo对象来自定义表格样式,该对象使用与内置函数不同的填充和边框颜色。我已经搜索了文档(12),但是没有发现对我的新手来说可以使我创建自定义TableStyleInfo对象的内容。因此,我尝试将样式仅应用于标题行,而不是使用TableStyleInfo对象,并具有以下内容:

import openpyxl

header_font = openpyxl.styles.fonts.Font(color='FFFFFF')
header_fill = openpyxl.styles.fills.PatternFill(fill_type='solid', fgColor='50779c')
myStyle = openpyxl.styles.NamedStyle(name='myStyle', font=header_font, fill=header_fill)
wb.add_named_style(myStyle)

table = openpyxl.worksheet.table.Table(ref='A1:' + current_cell.coordinate, displayName='MyTable', headerRowCellStyle='myStyle')
ws.add_table(table)

但是,我的样式没有应用于标题行。

我有种感觉,我不能简单地将TableStyleInfo对象应用于表,而是将表添加到工作簿后仅将单个样式应用于相关单元格,但是我希望有一种更好的方法来做到这一点。 / p>

谢谢!

PS:原谅冗长的代码行。我不确定在此处或在程序本身中与这些对象打交道的最佳实践是什么。

0 个答案:

没有答案