IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 测试小工具:python实现对比2个excel文件匹配数据写入新excel -> 正文阅读

[开发测试]测试小工具:python实现对比2个excel文件匹配数据写入新excel

测试业务需要:

1.现有a.xlsx

a.xlsx中有2个 sheet,分别是 a的data1,a的data2,

a的data2,如下图

?2.a.xlsx的?data1 和data2 都有A列,且A列数据值有部分是一样的

现需要将 data1和data2匹配生成c.xlsx的data3,

匹配规则:把data2复制到c.xlsx的data3文件中,data3中的E列值取值是? data1 和data2 都有A列匹配对应的data1的E列值

实现:

def test_data4():
    file1 = "data/a.xlsx"
    # 打开a.xlsx
    wb1 = xlrd.open_workbook(filename=file1)
    # a.xlsx要匹配的列索引
    hid_index1 = 0

    # a.xlsx目标数据列索引
    target_index1 = 1

    # a.xlsx的sheet=a的data1
    sheet1 = wb1.sheet_by_name('a的data1')

    # sheet=a的data1 的总行数
    rowNum1 = sheet1.nrows

    # sheet=a的data1的sheet的总列数
    colNum1 = sheet1.ncols

    # sheet=a的data1 要匹配的列索引( 就是sheet=a的data1中的B列)
    hid_index2 = 1

    # sheet=a的data2 目标数据列索引( 就是sheet=a的data2中的E列)
    target_index2 = 4

    # 获取表格sheet=a的 data2
    sheet2 = wb1.sheet_by_name('a的data2')  

    # sheet=a的 data2 的总行数
    rowNum2 = sheet2.nrows

    # sheet=a的 data2的总列数
    colNum2 = sheet2.ncols

    # xlwt准备生成一个新的文件的sheet=b的data1
    write_workbook = xlwt.Workbook()
    write_sheet = write_workbook.add_sheet('b的data1', cell_overwrite_ok=True)
    for index2 in range(0, rowNum2):
        for col_index in range(0, colNum2):
            # 遍历表2的每一行每一列,把对应的单元设置到新的文件中,即复制了表2的数据
            write_sheet.write(index2, col_index, sheet2.cell_value(index2, col_index))
            # 在遍历列过程中,如果碰到目标数据列索引.即需要补充的字段,则进行遍历表1,判断的id索引匹配
            if col_index == target_index2:
                for index1 in range(1, rowNum1):
                    hid1 = sheet1.cell_value(index1, hid_index1)
                    if hid1 == sheet2.cell_value(index2, hid_index2):
                        write_workbook,style_list = copy2(wb1)
                        xf_index = sheet2.cell_xf_index(1, rowNum1)
                        # 如果两个表的id相同则把表1的单元内容设置到表2对应的单元格
                        write_sheet.write(index2, col_index, 
                         sheet1.cell_value(index1,target_index1),style_list[xf_index])

    # 保存新的文件
    write_workbook.save("data/b.xlsx")


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:53:35  更:2021-11-12 19:54:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:55:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码