在openpyxl中使用`append`时如何应用单元格样式?

Rob*_*rto 5 python-2.7 openpyxl

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
Run Code Online (Sandbox Code Playgroud)

Cha*_*ark 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))
Run Code Online (Sandbox Code Playgroud)

openpyxl将更正此类单元格的坐标.