利用Python复制Excel表格中的特定列到另一个Excel的特定列

如下是一个简单的不太严谨的且缺乏校验的方式,但是能用,记录后续优化

依赖库openpyxl

pip install openpyxl

代码实现如下:

import os
from openpyxl.reader.excel import load_workbook

# -----------------以下为变量定义--------------------
sourcefile = 'source.xlsx' # 源文件位置
targetfile = 'target.xlsx' # 目标文件位置

# 定义复制列及目标位置(如复制A、B、C列 -> 目标A、B、C列)
copy_columns = ['A', 'B', 'C']
target_columns = ['A', 'B', 'C']

# -----------------以下为固定代码--------------------

# 检查文件是否存在
if not os.path.exists(sourcefile):
    print("源文件不存在!")
    exit()

# 加载源文件和目标文件,加载一个已存在的 Excel 文件并将其转换为一个 Workbook 对象
source_load = load_workbook(sourcefile)
target_load = load_workbook(targetfile)
source_toWorkbook = source_load.active
target_toWorkbook = target_load.active

# 遍历所有源行(包含超出目标原有行数的部分)
for row in range(1, source_toWorkbook.max_row + 1):
    for src_col, tgt_col in zip(copy_columns, target_columns):
        cell_value = source_toWorkbook[f'{src_col}{row}'].value
        target_toWorkbook[f'{tgt_col}{row}'] = cell_value  # 自动扩展目标行

# 保存修改
target_load.save(targetfile)