我正在使用openpyxl
创建Excel工作表。我想在插入数据时应用样式。问题是append
方法获取数据列表并自动将它们插入到单元格中。我似乎无法指定要应用于此操作的字体。
我可以返回并在事后将样式应用于单个单元格,但这需要开销来查找列表中有多少数据点,以及我当前追加到哪一行。有更简单的方法吗?
此说明性代码显示了我想要做的事情:
def create_xlsx(self, header):
self.ft_base = Font(name='Calibri', size=10)
self.ft_bold = self.ft_base.copy(bold=True)
if header:
self.ws.append(header, font=ft_bold) # cannot apply style during append
答案 0 :(得分:7)
ws.append()
旨在轻松添加数据行。但是,它确实允许您在行中包含无场单元格,以便您可以在添加数据时应用格式。这在使用write_only=True
时非常有用,但适用于普通的工作簿。
您的代码看起来像:
data = [1, 3, 4, 9, 10]
def styled_cells(data):
for c in data:
if c == 1:
c = Cell(ws, column="A", row=1, value=c)
c.font = Font(bold=True)
yield c
ws.append(styled_cells(data))
openpyxl将更正此类单元格的坐标。