关闭

Python办公神器:教你使用Python批量查找Excle数据

发表于:2024-1-23 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:了不起    来源:Python都知道

  有时候我们需要对Excel中的数据进行一些复杂的操作,比如批量查找、筛选、合并等,这时候用Python就可以大大提高我们的效率和准确性。
  在本教程中,我们将学习如何使用Python的openpyxl库来批量查找Excle数据。openpyxl是一个专门用来处理Excel文件的Python库,它可以读取和写入Excel文件,以及对Excel文件中的数据进行各种操作。我们将通过一个具体的例子来演示openpyxl库的使用方法和api用途。
  例子:批量查找档案记录
  假设我们有一个Excel文件,里面存储了一些档案记录,每个档案都有一个名称、配置、提交日期等信息。这个Excel文件有多个工作表sheet,每个sheet代表了一个月份,比如1月、2月、3月等。我们现在想要把所有日期工作表中的特定行都提取出来整合成一个新表,比如我们想要查找所有名称为“张三”的档案记录,并把它们放到一个新的Excel文件中。
  这个任务用Python和openpyxl库就可以很容易地实现。我们只需要按照以下步骤来操作:
  步骤一:导入openpyxl库
  首先,我们需要导入openpyxl库,这样我们才能使用它提供的功能。我们可以用下面的代码来导入openpyxl库:
  import openpyxl
  步骤二:加载Excel文件
  接下来,我们需要加载我们要处理的Excel文件,也就是档案记录Excel文件。我们可以用openpyxl库中的load_workbook函数来加载Excel文件,并返回一个Workbook对象。Workbook对象代表了整个Excel文件,它包含了所有的工作表sheet和其他信息。我们可以用下面的代码来加载Excel文件,并把返回的Workbook对象赋值给一个变量wb:
  wb = openpyxl.load_workbook('档案记录.xlsx')
  注意,这里的'档案记录.xlsx'是我们要处理的Excel文件的名称,你需要根据你自己的文件名来修改。
  步骤三:创建一个新的工作簿
  然后,我们需要创建一个新的工作簿Workbook对象,用来存放我们提取出来的数据。我们可以用openpyxl库中的Workbook函数来创建一个新的工作簿,并返回一个Workbook对象。我们可以用下面的代码来创建一个新的工作簿,并把返回的Workbook对象赋值给一个变量new_wb:
  new_wb = openpyxl.Workbook()
  步骤四:创建一个新的工作表
  接着,我们需要在新创建的工作簿new_wb中创建一个新的工作表sheet,用来存放我们提取出来的数据。我们可以用Workbook对象中的create_sheet方法来创建一个新的工作表,并返回一个Worksheet对象。Worksheet对象代表了一个单独的工作表sheet,它包含了所有的单元格cell和其他信息。我们可以用下面的代码来创建一个新的工作表,并把返回的Worksheet对象赋值给一个变量new_ws:
  new_ws = new_wb.create_sheet('提取结果')
  注意,这里的'提取结果'是我们创建的新工作表的名称,你可以根据你自己的需求来修改。
  步骤五:复制表头
  然后,我们需要把原来的Excel文件中的表头复制到新创建的工作表中,也就是把第一行的数据复制过来。我们可以用Worksheet对象中的append方法来向工作表中添加一行数据,这个方法接受一个列表作为参数,列表中的每个元素代表了一列的数据。我们可以用下面的代码来复制表头:
  # 获取原来Excel文件中的第一个工作表
  ws = wb.worksheets[0]
  # 获取第一行的数据
  header = [cell.value for cell in ws[1]]
  # 向新创建的工作表中添加一行数据
  new_ws.append(header)
  注意,这里我们假设所有的工作表sheet都有相同的表头,所以我们只需要获取第一个工作表中的第一行数据即可。如果你的Excel文件中的工作表有不同的表头,你需要根据你自己的情况来修改。
  步骤六:遍历所有工作表和单元格
  接下来,我们需要遍历原来Excel文件中的所有工作表sheet,再遍历每个工作表中的第一列(名称列,也可以看作A列)每一个有数据的单元格cell,对单元格中的内容进行判断,如果单元格中的文字为我们需要查找的档案名,就把这一行提取出来放到新创建的工作表中。我们可以用下面的代码来遍历所有工作表和单元格:
  # 遍历原来Excel文件中的所有工作表
  for ws in wb.worksheets:
      # 遍历每个工作表中第一列每一个有数据的单元格
      for cell in ws['A']:
          # 判断单元格中的内容是否为我们需要查找的档案名,比如“张三”
          # 获取单元格所在的行号
          row = cell.row
          # 根据行号获取这一行的数据
          data = [cell.value for cell in ws[row]]
          # 向新创建的工作表中添加一行数据
          new_ws.append(data)
  注意,这里我们假设我们要查找的档案名是“张三”,你可以根据你自己的需求来修改。
  步骤七:保存新创建的工作簿
  最后,我们需要把新创建的工作簿new_wb保存到一个新的Excel文件中,这样我们就可以查看我们提取出来的数据了。我们可以用Workbook对象中的save方法来保存工作簿,这个方法接受一个文件名作为参数,表示要保存的Excel文件的名称。我们可以用下面的代码来保存工作簿:
  new_wb.save('提取结果.xlsx')
  注意,这里的'提取结果.xlsx'是我们要保存的Excel文件的名称,你可以根据你自己的需求来修改。
  总结
  通过以上七个步骤,我们就完成了使用Python和openpyxl库批量查找Excle数据的任务。我们可以打开'提取结果.xlsx'文件,看到我们提取出来的所有名称为“张三”的档案记录。
  通过这个例子,我们学习了如何使用openpyxl库中的一些常用的函数和方法,比如load_workbook、Workbook、create_sheet、append、save等。openpyxl库还有很多其他的功能,比如修改单元格样式、插入公式、添加图表等,你可以参考openpyxl官方文档来进一步学习和探索。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号