import pandas as pd
from openpyxl import load_workbook
def qyhhsj(source_file,source_sheetname,source_col,source_start_row,source_end_row,source_start_col,source_end_col,target_file,target_sheetname,target_start_row,target_end_row,target_start_col,target_end_col):
"""
source_file 数据源表格所在的路径
source_sheetname 数据源表格所在的sheet名称
source_col 数据源表格中需要的数据列的范围,如从C列到S列,则写成C:S
source_start_row 数据源表格开始行
source_end_row 数据源表格结束行
source_start_col 数据源表格开始列
source_end_col 数据源表格结束列
target_file 目标表格所在的路径
target_sheetname 目标表格所在的sheet名称
target_start_row 目标表格开始行
target_end_row 目标表格结束行
target_start_col 目标表格开始列
target_end_col 目标表格结束列
"""
# 读取Excel文件
file_path = source_file
df = pd.read_excel(file_path, sheet_name=source_sheetname, header=None, index_col=None, usecols=source_col)
# 打开需要替换数据的Excel文件
wb2 = load_workbook(target_file)
# 获取第二个Excel文件中指定的sheet
ws2 = wb2[target_sheetname]
# 选择要交换的区域数据
required_data = df.iloc[source_start_row:source_end_row, source_start_col:source_end_col]
# 打印显示required_data中第一行第一列的数据
# print(required_data.iloc[0, 0])
"""
# 指定要写入的Excel区域
target_start_row = 5 # 区域从第5行开始
target_start_col = 2 # 区域从第2列开始
target_end_row = 17 # 区域从第17行结束
target_end_col = 19 # 区域从第19列结束
"""
ks_row=target_start_row
ks_col=target_start_col
# 遍历需要替换的区域行和列,将每个单元格的值替换成替换数据列中对应行的值
for i in range(target_start_row, target_end_row):
for j in range(target_start_col, target_end_col):
print(i, j)
# 将数据写入第i行第j列
ws2.cell(row=i, column=j, value=required_data.iloc[i - ks_row, j - ks_col])
# 保存修改后的第一个Excel文件
wb2.save(target_file)
#调用qyhhsj方法,从源表格的第C列第1行到第13行数据输入到目标表格的'水平位移'sheet中第2列第5行到第17行中
qyhhsj( r'C:\Users\Thinkpad\Desktop\数据最终处理结果(人工监测)\X位移量合并.xls','Sheet1','C:S',1,13,0,17,r'C:\Users\Thinkpad\Desktop\数据最终处理结果(人工监测)\金溪水库资料整编2023110--V6.xlsx','水平位移',5,17,2,19)
#qyhhsj( r'C:\Users\Thinkpad\Desktop\数据最终处理结果(人工监测)\Y位移量合并.xls','Sheet1','C:S',1,13,0,17,r'C:\Users\Thinkpad\Desktop\数据最终处理结果(人工监测)\金溪水库资料整编2023110--V6.xlsx','水平位移',5,17,24,41)
文章出处登录后可见!
已经登录?立即刷新