如何在Python代码中用for循环重复Excel单元格编号实现批量取值?
简化重复的Excel单元格提取代码
没问题!当然可以用for循环来干掉这些重复的代码,让你的代码更简洁易维护。
你可以直接循环1到100的数字,每次拼出对应的单元格名称(比如f'C{i}'),然后把值添加到result里,这样一行循环代码就能替代原来的100行重复内容:
改造后的核心代码段
result = [] # 循环1到100的整数(range是左闭右开,所以终止值写101) for i in range(1, 101): result.append(Ad[f'C{i}'].value)
如果想追求更简洁的写法,还可以用列表推导式一步生成result,代码会更紧凑:
result = [Ad[f'C{i}'].value for i in range(1, 101)]
优化后的完整代码
顺便给你调整了几个更规范的细节:
import os from openpyxl import load_workbook # 建议把import语句放在文件顶部,符合编码规范 path = "./data" file_list = os.listdir(path) results = [] for file_name_raw in file_list: # 用os.path.join拼接路径,适配Windows/Linux等不同系统 file_name = os.path.join(path, file_name_raw) wb = load_workbook(filename=file_name, data_only=True) # get_sheet_by_name已被弃用,现在直接用字典索引获取工作表更推荐 Ad = wb['Advanced'] # 用列表推导式快速生成result result = [Ad[f'C{i}'].value for i in range(1, 101)] results.append(result) print(results)
额外小提示
- 尽量把
import语句放在Python文件最开头,这是PEP8官方编码规范的要求 get_sheet_by_name方法已经被openpyxl官方弃用,现在使用wb['工作表名称']的方式更稳妥os.path.join拼接路径可以避免不同操作系统的路径分隔符(\和/)问题,让代码更通用
内容的提问来源于stack exchange,提问作者wtzephyr
相关产品推荐
相关产品推荐

