Python中可复制Excel整列,但无法复制特定列FROM_ID,求解决方法
复制Excel特定列(FROM_ID)的实现方案
修改后的代码
from openpyxl import load_workbook wb = load_workbook('Ambulance2Centroids_16622.xlsx') wb2 = load_workbook('test.xlsx') # 替代已弃用的get_sheet_by_name方法,直接通过工作表名访问 sheet1 = wb['Sheet1'] sheet2 = wb2['Details'] # 定位FROM_ID列的列号 target_col = None for col in range(1, sheet1.max_column + 1): if sheet1.cell(row=1, column=col).value == 'FROM_ID': target_col = col break if target_col: # 复制目标列的前9行数据(与原代码的行范围保持一致) for row in range(1, 10): # 这里将数据复制到sheet2的第1列,可根据需求修改column参数 sheet2.cell(row=row, column=1).value = sheet1.cell(row=row, column=target_col).value wb2.save('test.xlsx') else: print("未在Sheet1中找到FROM_ID列") # 原代码中保存原文件的操作无必要,因为未修改原文件,可删除 # wb.save('Ambulance2Centroids_16622.xlsx')
核心要点
- 用
wb['工作表名']替代已弃用的get_sheet_by_name方法,符合openpyxl的最新规范。 - 通过表头行(第1行)动态定位
FROM_ID列,避免硬编码列号导致的适配问题。 - 仅遍历目标列的数据,无需处理所有列,提升代码效率。
- 移除了无意义的原文件保存操作,因为代码未修改原Excel内容。
内容的提问来源于stack exchange,提问作者user13373167
相关产品推荐
相关产品推荐

