Python利用模糊查询两个excel文件数据 导出新表格

实际工作中,需要将两个excel表格中的数据进行模糊查询,最后将查询结果按照要求生成新的表格文件。
例如:领导安排了一个报表,需要将表2(缺陷查询数据导出.xls)中的厂站名称,缺陷描述对照表1(设备台账统计.xlsx)进行统计,表2的内容如下:


再看看表1

具体要求是,对照表1厂站名称,按个对表2中的厂站名称进行查找,查找后再对照表1中间隔名称查找表2中缺陷描述内容,最后把有缺陷的内容按照表1的顺序重新生成一个表格(PS:本来想在表1中更新,学的不扎实,没搞出来)。手动查询,无奈表格数据达到几万条,泪奔!!!
进过两天学习,看大神的代码(大部分看不懂),基本完成目标,顺利解放小拇指,具体代码如下:

# code=utf-8
import xlrd
import xlwt
import timexlsx_new = xlrd.open_workbook('设备台账统计.xlsx')
sheets_new = xlsx_new.sheet_by_index(1)  # 读取第二个表xlsx_quexian = xlrd.open_workbook('缺陷查询数据导出.xls')
sheets_new_quexian = xlsx_quexian.sheet_by_index(1)new_workbook = xlwt.Workbook()
worksheet = new_workbook.add_sheet('new_sheet')xlsx1_row = sheets_new.nrows  # 读取表1总列数
xlsx2_row = sheets_new_quexian.nrows  # 读取表2总列数
all_date1 = []  # 存储表1数据,列表
all_date2 = []  # 存储表2数据,列表
quexian_huizong = ''mun = 0  # 用于记录缺陷总数
mun1 = 0  # 用于记录当前执行表1中的次数
mun2 = 0  # 用于记录当前执行表2中的次数print('表1总行数为:', xlsx1_row, '表2总行数为:', xlsx2_row, )
print('查询花费时间较长!!!!!''马上开始......')time.sleep(1)  # 等待1秒
for i in range(3, xlsx1_row):  # 读取总的行数key_biandianzhan = sheets_new.cell(i, 1).value  # 读取表1中变电站名称key_jiangemingcheng = sheets_new.cell(i, 4).value  # 读取变电站间隔名称date1 = {'key_biandianzhan': key_biandianzhan, 'key_jiangemingcheng': key_jiangemingcheng}  # 设置字典all_date1.append(date1)  # 将表1中数据写入列表print('表1数据复制成功!!!')
time.sleep(1)  # 等待1秒for j in range(3, xlsx2_row):  # 表2总列数key_biandianzhan_quexian = sheets_new_quexian.cell(j, 5)  # 读取表2中变电站名称key_jiangemingcheng_quexian = sheets_new_quexian.cell(j, 7)  # 读取变电站缺陷date2 = {'key_biandianzhan_quexian': key_biandianzhan_quexian,'key_jiangemingcheng_quexian': key_jiangemingcheng_quexian}  # 将表2中数据写入字典all_date2.append(date2)print('表2数据复制成功!!!')
time.sleep(1)  # 等待1秒
print('开始查询....................')for l in all_date1:  # for循环从表1中提取变电站biandianzhan = l['key_biandianzhan']  # 将列表1中的数据赋值到变量biandianzhanjiangemingcheng = l['key_jiangemingcheng']  # 将列表1中的间隔名称赋值到jiangemingchengmun1 = mun1 + 1print(biandianzhan)quexian_huizong = ''  #用于检测mun2 = 0for k in all_date2:  # for循环从第二个字典中提取数据biandianzhan_quexian = k['key_biandianzhan_quexian']  # 将列表2中变电站数据赋值到变量biandianzhan_quexianjiangemingcheng_quexian = k['key_jiangemingcheng_quexian']  # 将列表2中变电站数据赋值到变量jiangemingcheng_quexianmun2 = mun2 + 1  #if str(biandianzhan) in str(biandianzhan_quexian):  # 判断语句,判断表1中变电站名称在表2变电站名称,表1变电站名称相对表2变电站名称存在描述不全现象。if str(jiangemingcheng) in str(jiangemingcheng_quexian):  # 判断语句,判断表1中变电站间隔名称在包含在表2中缺陷描述。quexian_huizong = str(jiangemingcheng_quexian) + str(quexian_huizong)quexian_huizong = str(jiangemingcheng_quexian) + str(quexian_huizong)print('------总进度', mun1, '/', xlsx1_row, '        分进度', mun2, '/', xlsx2_row, '------')  # 打印判断进度mun = mun + 1  # 缺陷数量加1print('找到', mun, '条符合条件缺陷')  # 打印当前查到的缺陷数量print('变电站名称:',biandianzhan, '缺陷描述:', jiangemingcheng_quexian)  # 打印当前查询到的变电站名称和缺陷描述worksheet.write(mun1,0,biandianzhan) #数据写入新的工作表worksheet.write(mun1,1,jiangemingcheng) #数据写入新的工作表worksheet.write(mun1,2,quexian_huizong) #数据写入新的工作表new_workbook.save('生成数据.xls')
print('执行完毕!!!')

执行后在当前目录下生成新的excel文件,已经按照表2顺序对缺陷进行统计。
当然还是有部分内容没有完全搞清楚,字符串里面有个字典,怎么赋值,还有有没有其他的方法可以更加方便的实现该功能,希望大神不吝赐教。

记录于2020年2月26日

Python利用模糊查询两个excel文件数据 导出新表格相关推荐

  1. 使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件

    使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件 因为有统计成员到会情况的任务,每次汇总时都很麻烦,需要一个个对应腾讯会议导出名单的成员,然后在总表上进行标 ...

  2. Python+pywin32批量读取带密码的Excel文件数据导出为CSV文件

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

  3. python利用pandas对两张excel表合并(一)

    工作中,我们会经常遇到需要对表中记录进行合并的情况,如下图所示: 需要得到如下结果: 下面我将通过几行python代码实现上述功能: import pandas as pd # 读取1表(参数分别为1 ...

  4. python计算csv文件内的数据_Python利用pandas计算多个CSV文件数据值的实例

    功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件 pip install pandas import pandas as pd import glob,os,sys in ...

  5. python将两个excel匹配_Python3实现两个Excel文件内容比对

    #-*- coding: utf-8 -*- #比对两个Excel文件内容的差异 #---------------------假设条件---------------- #1.源表和目标表格式一致 #2 ...

  6. Python使用openpyxl和pandas处理Excel文件实现数据脱敏案例一则

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷 送书活动火爆进行中:董老师又双叒叕送书啦,30本 ...

  7. 怎么用python处理excel文件-Python自动化如何处理excel文件数据

    原标题:Python自动化如何处理excel文件数据 在python自动化中,经常会遇到对数据文件的操作,比如添加多名员工,但是直接将员工数据写在python文件中,不但工作量大,要是以后再次遇到类似 ...

  8. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...

  9. Python使用xlwt和xlrd读写excel文件

    Python使用xlwt和xlrd读写excel文件 xlwt和xlrd是两个相互配套的模块,在Python中,用于将数据写入Excel文件和读取Excel文件的数据. 从字面即可看出xlwt是对xl ...

  10. 利用pandas读取Excel文件数据

    说明 pandas能帮助我们在Python 代码中直接读取Excel 文件数据. 但只有pandas是不行的,会报错: ImportError: Missing optional dependency ...

最新文章

  1. python水仙花数_scratch与pythonc++的不同,你了解吗?
  2. 高颜值性价比神器,乐Pro3双摄AI版带来不一样的上手体验
  3. 工作是老板的,生命是自己的。
  4. 浅析BMP位图文件结构(含Demo)[转]
  5. Migrate blog from blogcn here
  6. idea打包Jar包
  7. 【安全牛学习笔记】端口扫描
  8. 雷凌3070无线网卡linux驱动,3070无线网卡驱动,小编教你ralink3070无线网卡驱动
  9. Openg~lopengl中文手册4.5
  10. 对应阻尼下的开环增益matlab,自动控制原理实验指导书MATLAB版解析.doc
  11. 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)
  12. 给移动硬盘装上LINUX全攻略,简单几步把Ubuntu装进移动硬盘引导使用
  13. 计算机编程 计算存款利息,作业报告12 定期存款利息计算器
  14. 科研合作应该互相尊重
  15. About Variables
  16. 联想计算机如何修改启动顺序,联想电脑怎么在BOSS里设置启动次序
  17. Zmeet云会议私有化部署--真正能私有化部署的类zoom会议
  18. android智能家居使用的协议,基于Android的智能家居APP的设计与实现论文.docx
  19. 物联网操作系统应该怎么选?
  20. mos管 rl_MOS各个参数详解

热门文章

  1. 使用DX查看系统配置
  2. android 文件下载和保存
  3. 用VScode写C/C++,从下载安装到配置使用
  4. 疯狂Java讲义(十三)----第一部分
  5. Win11截图工具在哪里?
  6. VBA编程基础和编程环境(二)
  7. axure 7.0 注册码
  8. 2022年 hust OJ 最新搭建方式
  9. Web程序设计(一)
  10. ASP.NET Web程序设计 第九章 初识 Web Pages