使用openpyxl设置Excel列宽报错:Workbook无column_dimensions属性
解决openpyxl设置列宽的AttributeError问题
哦,这个问题我碰到过,你犯了个很常见的小错误——把工作表对象的属性用在了工作簿对象上啦!
错误原因
column_dimensions是Worksheet(也就是你代码里的sheet变量)的专属属性,用来控制单个工作表的列宽。而你现在调用的是wb.column_dimensions,wb是Workbook(工作簿)对象,它本身并没有这个属性,所以才会触发AttributeError: 'Workbook' object has no attribute 'column_dimensions'。
修正后的代码
只需要把操作column_dimensions的对象从wb换成sheet就可以了,另外别忘了最后保存工作簿:
from openpyxl import Workbook wb = Workbook() sheet = wb.active # 改用sheet对象操作column_dimensions sheet.column_dimensions['A'].width = 25 sheet.column_dimensions['B'].width = 25 sheet["A1"] = "Date" sheet["B2"] = "Name" # 保存到文件 wb.save("formatted_sheet.xlsx")
额外小技巧
如果要给多列设置相同宽度,用循环会更高效:
# 批量设置A、B列宽度为25 for col_letter in ['A', 'B']: sheet.column_dimensions[col_letter].width = 25
内容的提问来源于stack exchange,提问作者Abdul9401
相关产品推荐
相关产品推荐

