You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用openpyxl为已有数据的Excel工作簿统一设置Arial字体?

解决方案

方法一:修改工作簿默认样式(无需遍历单元格)

openpyxl里的DEFAULT_FONT仅对新建单元格生效,已存在的单元格会保留原有样式配置。要批量修改已有单元格的字体,可直接修改工作簿的默认命名样式(通常为Normal),所有使用该默认样式的单元格会自动应用新字体:

from openpyxl import load_workbook
from openpyxl.styles import Font, NamedStyle

wb = load_workbook('my_path\\MyExcel.xlsx')

# 执行你的数据写入操作

# 获取工作簿默认的Normal样式
normal_style = wb.styles['Normal']
# 将该样式的字体设置为Arial
normal_style.font = Font(name='Arial')

wb.save('my_path\\MyExcel.xlsx')

注意:此方法仅对使用默认Normal样式的单元格生效。如果部分单元格之前被设置了自定义字体(比如手动修改过字体),这些单元格不会被修改。

方法二:高效遍历所有单元格(覆盖所有情况)

如果需要强制所有单元格(包括自定义样式的)都改为Arial,可使用iter_rows()或iter_cols()高效遍历,比逐个单元格循环更节省资源:

from openpyxl import load_workbook
from openpyxl.styles import Font

wb = load_workbook('my_path\\MyExcel.xlsx')

# 执行你的数据写入操作

# 定义Arial字体对象,避免重复创建
arial_font = Font(name='Arial')

# 遍历所有工作表
for ws in wb.worksheets:
    # 遍历工作表中所有有数据的单元格
    for row in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column):
        for cell in row:
            # 直接替换单元格字体
            cell.font = arial_font

wb.save('my_path\\MyExcel.xlsx')

内容的提问来源于stack exchange,提问作者Tester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:22:35