如何使用 OpenPyXL 格式化 headers 列
How to format columns with headers using OpenPyXL
我正在尝试以日期格式设置某些列的格式。
我能够使用以下方法成功更改单个单元格的格式:
date_style = Style(number_format="M/D/YYYY")
ws['E7'].style = date_style
但是除了 header 之外,是否有更简单的方法将一揽子格式应用于列?
我注意到 openpyxl 网站上的一些代码本应执行此操作,但似乎不起作用。如下:
col = ws.column_dimensions['E']
col.number_format = "M/D/YYYY"
我假设如果它确实工作正常,它也适用于 header。
编辑:我尝试了以下代码来格式化单元格:
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
它 returns 错误:无法排序的类型:tuple() < int()
我想出来了,虽然可能不是最优雅的方法:
date_style = Style(number_format="M/D/YYYY")
for col in range(5,8,2):
for row in range(2,100,1):
ws.cell(row=row,column=col).style = date_style
我希望第 5 列和第 7 列具有日期格式。这确实有效,但当然,如果我有超过 100 行,我将不得不提高该数字。
我正在尝试以日期格式设置某些列的格式。
我能够使用以下方法成功更改单个单元格的格式:
date_style = Style(number_format="M/D/YYYY")
ws['E7'].style = date_style
但是除了 header 之外,是否有更简单的方法将一揽子格式应用于列?
我注意到 openpyxl 网站上的一些代码本应执行此操作,但似乎不起作用。如下:
col = ws.column_dimensions['E']
col.number_format = "M/D/YYYY"
我假设如果它确实工作正常,它也适用于 header。
编辑:我尝试了以下代码来格式化单元格:
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
它 returns 错误:无法排序的类型:tuple() < int()
我想出来了,虽然可能不是最优雅的方法:
date_style = Style(number_format="M/D/YYYY")
for col in range(5,8,2):
for row in range(2,100,1):
ws.cell(row=row,column=col).style = date_style
我希望第 5 列和第 7 列具有日期格式。这确实有效,但当然,如果我有超过 100 行,我将不得不提高该数字。