如下是一个简单的不太严谨的且缺乏校验的方式,但是能用,记录后续优化
依赖库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)