python 实现excel表选中区域数据转置并存入另一个excel指定的区域中方法

该代码定义了一个函数qyhhsj,用于从源Excel的指定列和行范围内提取数据,然后将这些数据转置并替换到目标Excel的相应位置。函数使用pandas读取数据,openpyxl处理Excel文件,支持按需选择和替换工作表中的数据区域。

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]
    print(required_data)

    #对选中区域数据进行转置
    required_data_T=required_data.T
    print(required_data_T)
    # 打印显示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_T.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','水平位移',60,77,60,72)
 

这个Python自动化办公源码是一个用于将Excel文件中的行列进行转置转置)的工具。在处理Excel数据时,我们经常需要对数据进行行列转换,以便更好地分析和展示数据。这个源码可以帮助我们快速实现这一功能,提高工作效率。首先,我们需要安装pandas和openpyxl库,这两个库分别用于处理Excel文件和进行行列转换。可以使用以下命令进行安装: bash复制代码运行pip install pandas openpyxl 接下来,我们需要编写一个Python脚本来实现行列转换的功能。以下是一个简单的示例: python复制代码运行import pandas as pddef transpose_excel(input_file, output_file): # 读取Excel文件 df = pd.read_excel(input_file) # 进行行列转换 transposed_df = df.T # 将转换后的数据写入新的Excel文件 transposed_df.to_excel(output_file, index=False)if __name__ == "__main__": input_file = "example.xlsx" output_file = "transposed_example.xlsx" transpose_excel(input_file, output_file) 在这个示例中,我们首先导入了pandas库,定义了一个名为transpose_excel的函数。这个函数接受两个参数:输入文件名和输出文件名。在函数内部,我们使用pandas的read_excel函数读取输入文件,将其存储在一个名为df的DataFrame对象中。然后,我们使用DataFrame对象的T属性进行行列转换,将结果存储在一个名为transposed_df的新DataFrame对象中。最后,我们使用DataFrame对象的to_excel方法将转换后的数据写入输出文件。要使用这个脚本,只需将输入文件名和输出文件名替换为实际的文件名即可。例如,如果我们有一个名为example.xlsx的Excel文件,我们可以将其行列转换后的结果保存到一个名为transposed_example.xlsx的新文件中。只需运行以下命令: bash复制代码运行python transpose_excel.py 这个Python自动化办公源码可以帮助我们在处理Excel数据时轻松实现行列转换,提高我们的工作效率。重新回答|
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字化信息化智能化解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值