使用openpyxl设置冻结加粗表头时遇Font未定义错误
解决openpyxl中Font未定义的NameError问题
你遇到的NameError: name 'Font' is not defined是因为Font类属于openpyxl的styles模块,你没有提前导入就直接使用了,和设置整行还是逐个单元格加粗的写法无关。
修正方法很简单:
- 在代码最开头添加Font类的导入语句:
from openpyxl.styles import Font
修正后的完整代码示例:
from openpyxl import Workbook from openpyxl.styles import Font # 关键导入语句 # 假设你已经完成wb的初始化,比如wb = Workbook() 或者 wb = load_workbook("你的文件.xlsx") for ws in wb: print("Now in sheet: " + ws.title) ws['A1'].value = "Name" ws['B1'].value = "Client Name" ws['C1'].value = "Project Title" ws['D1'].value = "Actual Hours" ws['E1'].value = "Date" ws['F1'].value = "Notes" # 整行设置加粗的写法 myRow = ws.row_dimensions[1] myRow.font = Font(bold=True) # 若想用逐个单元格设置,取消下面注释即可 # ws['A1'].font = Font(bold=True) # ws['B1'].font = Font(bold=True) # ws['C1'].font = Font(bold=True) # ws['D1'].font = Font(bold=True) # ws['E1'].font = Font(bold=True) # ws['F1'].font = Font(bold=True) ws.freeze_panes = ws['A2'] # 记得保存修改后的文件 wb.save("你的目标文件路径.xlsx")
补充说明:openpyxl的样式相关类(比如Font、Alignment、Fill等)都需要从openpyxl.styles模块单独导入,不能直接调用,这是新手使用openpyxl时容易踩的坑。
内容的提问来源于stack exchange,提问作者opafmoremedic
相关产品推荐
相关产品推荐

