我有一个Excel文件要格式化。第一行(不包括页眉,所以第2行)应为红色,并将斜体化。
Openpyxl Documentation states:
If you want to apply styles to entire rows and columns then you must apply the style to each cell yourself
我个人认为这很臭。。。这是我的解决方法:
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
,我的循环将对其应用格式。我可以用正则表达式解决这个问题。这是正确的方法吗?
最终-是否有更好的方法将格式应用于整行?还有。有谁能给我指出一些好的Openpyxl文档的正确方向吗?我只在堆栈上发现了sheet.iter_rows()
和cell.coordinates
。
如果您只想更改第二行的颜色,则无需对所有行进行迭代,只需按以下方式对一行进行迭代:
给你这样的东西:
访问多个单元格在openpyxl文档中有描述:Accessing many cells
或者,要使用
NamedStyle
:相关问题 更多 >
编程相关推荐