我想格式化日期格式的某些列。如何使用OpenPyXL格式化标题列
我能够成功使用更改单个单元格的格式:
date_style = Style(number_format="M/D/YYYY")
ws['E7'].style = date_style
但有一个毯子格式从头部预留应用于列一个简单的方法?
我注意到一些代码在openpyxl网站应该这样做,但它似乎没有工作。它是如下:
col = ws.column_dimensions['E']
col.number_format = "M/D/YYYY"
我假设它如果确实工作正常,它也适用于标题以及。
编辑:我尝试下面的代码格式的单元格:
ws.cell(row=1,column=5).style=date_style
其中一期工程一样的WS [“E7”]上面的语句,但在应该让我运行一个循环的格式在上面。但是,当我执行以下命令:
for i in ws.rows[1:]:
ws.cell(row=i,column=5).style = date_style
它会返回错误:unorderable类型:元组()< INT()
您必须单独格式化所有单元格。该文档解释说,格式化列和行尺寸对象对单个单元格没有影响。 –
Charlie指的是这样的:“样式也可以应用到列和行,但是请注意,这仅适用于在文件关闭后创建的单元格(在Excel中)如果要将样式应用于整个行和列,您必须将样式应用于每个单元格,这是对文件格式的限制“(可在[应用样式]一节中找到(https://openpyxl.readthedocs.io/en/default/styles.html#applying-样式))。但是,最后一点不太正确。这不是对文件格式的限制,而是对openpyxl的限制。 XlsxWriter可以做到这一点。 –