Python实现Excel列数据验证时TypeError字符串无法拼接int问题问询
问题修复方案
报错原因
TypeError: can only concatenate str (not "int") to str 报错的根本原因为:Python 不支持字符串类型和整数类型直接执行拼接操作,你代码中的循环变量
i是int类型,直接和字符串'B'执行+运算触发了类型校验错误。
修复方法
有两种常用的修复方案:
- 方案1:使用
str()方法将整数i转换为字符串后再拼接
for i in range(1, len(risk_1)): worksheet.data_validation('B' + str(i), {'validate': 'list', 'source': ['option1', 'option2', 'option3']})
- 方案2:使用f-string格式化生成单元格坐标(Python3.6及以上版本支持,代码可读性更高)
for i in range(1, len(risk_1)): worksheet.data_validation(f'B{i}', {'validate': 'list', 'source': ['option1', 'option2', 'option3']})
额外注意事项
Python内置的range函数是左闭右开规则,原代码range(1, len(risk_1))只会遍历到第len(risk_1)-1行,如果你需要覆盖到第len(risk_1)行的B列单元格,需要将range的结束参数调整为len(risk_1)+1。
内容的提问来源于stack exchange,提问作者RM swiftie
相关产品推荐
相关产品推荐

