零Python编程基础,如何在10分钟内合并1000个Excel表格?

对于大部分的文秘,财务人员,管理人员,都会面临大量的Excel表格整理工作,当Excel表格超过100,甚至有1000个时,对于他们来说,无疑是个噩梦。

下面的场景,您是否熟悉:

  • 接收不同部门的大量Excel表格,按照指定的格式分类汇总,并在限定的时间内发送给部门领导;
  • 包含大量历史数据的Excel表格,需要按照新的格式要求重新整理;
  • 将很多个Word文档中的信息,整理到一个Excel表格中。

如果你也有这样的问题,那请您跟我一起往下看,好学青年我具备扎实的Python技术能力,最擅长帮您解决这些问题。

和上面真实场景一样,办公室文秘张三某天收到这样一个任务,领导要求张三要在当天汇总完毕,这可是公司最近6年的考核情况。

公司有多少员工呢?远远超过1000人!!

考核表具体是什么样呢?如下图所示。
在这里插入图片描述
个人考核表
在这里插入图片描述
1000+份表格

文秘张三收到这个任务后,按照日常工作习惯,张三先梳理下思路,新建一个最终的Excel表格。

逐个打开员工考核表,并将员工考核表信息拷贝到最终的Excel表格中,张三计划一上午搞定。

可是到了中午,老眼昏花,发现自己一顿操作猛如虎,一看才完成二分之五。

张三开一个文档,拷贝一个文档,同时还要处理其他事情,回来一看,又忘了自己刚刚处理哪个文档了,又重新确定进度。

直到下午下班的时候,张三依然没有完成,默默掏出手机,点个外卖,给家里打个电话,表示自己要加班完成任务。

张三的工作方法,和绝大多数办公室文秘人员、财务人员、行政人员的工作方法一样,我们一起来分析下,这样的方法有什么样的问题呢?

  • 容易出错。首先张三不可能一天只做这件事情,在同步完成其他事情时,精力一旦分散,就容易出现漏拷贝的情况,也可能出现重复拷贝的情况。
  • 效率低。一天的时间都不一定能够完成,其实我们完全可以用程序来解决,用程序可能10分钟就完成。 重复两遍的事情,都可以用程序来解决。

在学习这个技能之前,我们首先需要简单的Python基础,然后再学习今天要教的算法库,openpyxl。

为了降低理解程度,我们这里简化模型,假设所有员工具有相同的内容格式。
在这里插入图片描述

员工考核表
在这里插入图片描述

最终表格表头
在这里插入图片描述

最终表格尾部

我们按照如下的逻辑来完成任务:

  1. 新建最终表格工作簿,新建工作表;
  2. 生成工作表表头,设置列宽;
  3. 逐个打开单个员工考核表,读取相应单元格的内容,并设置到最终表格的相应单元格中;
  4. 按照指定的名称保存最终表格。

根据任务逻辑,大家聚精会神哈,好学青年要逐行解释代码了。

1、依赖库导入

from openpyxl import load_workbook, Workbook
import os

2、新建最终表格工作簿

targetWB = Workbook()

3、新建工作表

targetWS = targetWB.create_sheet('Sheet1', 0)

4、生成工作表表头

targetWS.cell(1, 1, '姓名')

在第一行第一列输入“姓名”,其他表头类似

5、设置列宽

targetWS.column_dimensions['A'].width = 7

第A列的宽度是7,其他表头类似。

6、逐个打开单个员工考核表

for table in os.listdir(tablePath):
    table = os.path.join(tablePath, table)
    wb = load_workbook(table, 'r')
    ws = wb['sheet1']

7、读取相应单元格的内容,并设置到最终表格的相应单元格中

for row in ws.iter_rows(min_row=2, max_row=7):
    targetWS.cell(currentRow, 1, row[0].value)
    targetWS.cell(currentRow, 2, row[1].value)

8、按照指定的名称保存最终表格。

tablePath = r"D:\考核表"
targetName = os.path.join(tablePath, "最终表格.xlsx")
targetWB.save(targetName)
targetWB.close()

从开始写代码,到完成最终表格的生成,最多只花了10分钟。

如果是Python零基础,您一定会觉得,为了完成这个功能,肯定要写很多复杂的代码。

实际上,有效代码行数少于30行。

下面我粘贴上了所有代码,你可以使用这些代码完全复现我的效果。

import os
from openpyxl import load_workbook, Workbook

tablePath = r"D:\考核表"
targetWB = Workbook()
targetWS = targetWB.active

headList = ['姓名', '年份', '工作态度(20分)', '工作实绩(20分)', '工作能力(20分)', '出勤情况(20分)', '出差情况(20分)', '综合得分']
dimensionList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
widthList = [7, 7, 15, 15, 15, 15, 15, 10]
for column in range(0, 8):
    targetWS.cell(1, column+1, headList[column])
    targetWS.column_dimensions[dimensionList[column]].width = widthList[column]

currentRow = 2
for table in os.listdir(tablePath):
    table = os.path.join(tablePath, table)
    wb = load_workbook(table, 'r')
    ws = wb[wb.sheetnames[0]]

    for row in ws.iter_rows(min_row=2, max_row=7):
        for j, cell in enumerate(row):
            targetWS.cell(currentRow, j+1, cell.value)
        currentRow += 1

targetName = "最终表格.xlsx"
targetWB.save(targetName)
targetWB.close()

基础知识

Excel

Excel表格分为三层结构,即工作簿—工作表—(行、列、单元格)。

我们在文件夹中看到的,以“xlsx”为后缀,能够通过双击打开的就是工作簿,以下图为例,“新建Microsoft Excel工作表.xlsx”就是工作簿。

工作簿可以包含多个工作表,以下图为例,即“sheet1”、"sheet2”。

每个工作表中包含多行多列,下图中的绿线即为行,行按照12345…来排序;红线为列,列按照ABCDEFG…来排序,红线和绿线的交接处就是单元格,下图中的G4就是单元格。

我们在使用Python自动化处理的过程中,就是按照先打开工作簿,再指定工作表,然后指定行、列或单元格来进行操作的。
在这里插入图片描述
Excel表格

openpyxl

openpyxl是一个功能非常强大的Python库,那openpyxl具有哪些功能呢?挑重点的来说:

  1. 创建新的工作簿;
  2. 加载已有工作簿;
  3. 新建工作表;
  4. 列举所有工作表;
  5. 打开指定工作表;
  6. 选择单个单元格;
  7. 选择多个单元格;
  8. 查询单元格属性(列索引、行索引、列名、行名、坐标、单元格类型、单元格样式);
  9. 设置单元格样式(字体、对齐方式、边框、填充);
  10. 设置行高、列宽;
  11. 单元格遍历;
  12. 合并单元格;
  13. 过滤和排序;
  14. 调用Excel自带公式;
  15. 保存工作簿。

通过巧妙地组合上述功能,您可以完成自己想要的效果。

上面这些功能的教程,会在我后续的专栏【Python办公自动化】中详细讲解。

如果你需要这些Excel表格作为案例,或者你需要我刚刚推荐的书籍《Python编程快速上手》,可以看我个人简介。

如果您在执行代码的过程中,有什么具体问题,可以在评论区直接留言,大家一起学习,一起进步。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

猜你喜欢

转载自blog.csdn.net/libaiup/article/details/128799376#comments_27513109