文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-11-30 02:24

关注

在本教程中,我们将学习如何使用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官方文档来进一步学习和探索。

来源:Python都知道内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯