AttributeError报错:'NoneType'对象无'set_column'属性求助
解决AttributeError: 'NoneType' object has no attribute 'set_column'问题
问题分析
你遇到的错误核心原因是:ws = wb.get_worksheet_by_name('Data')返回了None——用xlsxwriter新建的工作簿默认不会自动创建名为Data的工作表,默认工作表名称为Sheet1,直接调用get_worksheet_by_name找不到目标表,后续调用ws.set_column自然触发NoneType属性错误。
修复方案
你需要先创建Data工作表,再对其进行操作,以下是两种可行的代码修正方式:
方式1:直接创建指定名称的工作表
wb = xlsx.Workbook(File_path) # 直接创建名为'Data'的工作表 ws = wb.add_worksheet('Data') # 正常设置列宽 ws.set_column('A:A', 60)
方式2:先尝试获取,不存在则创建(兼容已有工作表的场景)
wb = xlsx.Workbook(File_path) # 先尝试获取'Data'工作表 ws = wb.get_worksheet_by_name('Data') # 如果不存在则创建 if ws is None: ws = wb.add_worksheet('Data') ws.set_column('A:A', 60)
额外提示
原代码中ws = ws属于无效冗余代码,建议直接删除,避免混淆。
内容的提问来源于stack exchange,提问作者Jose Daniel Rojas
相关产品推荐
相关产品推荐

