【发布时间】:2017-03-23 15:20:53
【问题描述】:
我有一个要格式化的 Excel 文件。第一行(不包括标题,所以第 2 行)应该是红色并斜体。
Openpyxl Documentation states:
如果您想将样式应用于整个行和列,那么您必须自己将样式应用于每个单元格
我个人认为这很臭......这是我的解决方法:
import openpyxl
from openpyxl.styles import NamedStyle
from openpyxl import load_workbook
from openpyxl.styles.colors import RED
from openpyxl.styles import Font
# I normally import a lot of stuff... I'll also take suggestions here.
file = 'MY_PATH'
wb = load_workbook(filename=file)
sheet = wb.get_sheet_by_name('Output')
for row in sheet.iter_rows():
for cell in row:
if '2' in cell.coordinate:
# using str() on cell.coordinate to use it in sheet['Cell_here']
sheet[str(cell.coordinate)].font = Font(color='00FF0000', italic=True)
wb.save(filename=file)
第一个缺点是,如果有更多单元格,例如A24,我的循环将对其应用格式。我可以用正则表达式解决这个问题。那会是正确的方法吗?
最终,是否有更好的方法将格式应用于整行?还有。任何人都可以为我指出一些good Openpyxl 文档的正确方向吗?我只在 Stack 上发现了 sheet.iter_rows() 和 cell.coordinates。
【问题讨论】: