Life is short , you need Python .

keyword:excel读取、拆分数据、生成文档

如果不想成为一个循环流水动作的机器人,或许可以想想其他方法。

有时候,慢即是快~

目标:老板丢来全集团员工名单,要求按子公司拆分数据,每个公司一个人员文档,大约100个公司信息,近2w条人员数据。

分解目标:

1、读取文件

2、处理数据

3、保存新文档

01

读取文件

使用模块:openpyxl中的load_workbook、Workbook

读取文件先了解文件的存储路径,读取工作簿,再读取工作簿中的工作表;

由于本工作簿只有一张工作表,我们不需要通过工作表名来获取工作表,通过获取活动工作表就可以。

获取表格的代码如下:

# 导入第三方库,为了后续书写简介,用from...import...方式导入from openpyxl import load_workbook,Workbook# 打开工作簿,获取活动工作表wb  = load_workbook('./组织人员数据.xlsx')ws = wb.active

02

处理数据

使用模块:openpyxl中的iter_rows函数

我们观察一下老板丢过来的文件:

首行表头,这是后续生成新文档每个文档都需要的;

from openpyxl import load_workbook,Workbook# 打开工作簿,获取活动工作表wb  = load_workbook('./组织人员数据.xlsx')ws = wb.activetitle=['用户名','人员姓名','人员编号','法人实体','组织','部门','职位','职务','工作电话','工作手机号','是否可用','角色名称','角色描述']# 表头获取也可以用iter_rows读取第一行

根据公司名称来拆分数据,对应表格中【法人实体】这一列内容:

如果A员工的法人实体为X公司,他的数据应该被放到X公司的文档中。

1、这意味着需要根据法人实体这一列,创建文档并以此命名;

2、根据法人实体这一列将员工数据逐条分发到对应文档

这一阶段的代码如下:

from openpyxl import load_workbook,Workbooklist=[]# 打开工作簿,获取活动工作表wb  = load_workbook('./组织人员数据.xlsx')ws = wb.activefor row in ws.iter_rows(min_row=2,values_only=True):    if row[3] not in list:        list.append(row[3])        org_wb=Workbook()        org_ws=org_wb.active        org_ws.append(title)        org_ws.append(row)    else:        org_ws=org_wb.active        org_ws.append(row)

为了快速测试,我们可以复制少量数据进行测试,或者过程中用print输出查看,待确认没有问题,我们在使用原数据运行。

03

保存新文档

使用模块:openpyxl中的save函数

这段代码如下:

from openpyxl import load_workbook,Workbookorg_wb.save('./newfile/{}.xlsx'.format(row[3]))

最终我们可以运行,看到文件哗啦啦出现在指定文件夹中:

思考题

- 如果只想筛选出在职人员,怎么优化?

- if...else部分比较冗余,怎么优化?

以上就是全部啦,回到公众号中发送【拆分数据】可以获得源码。

版权声明:转载请附上原文出处及链接。

element ui 表格拆分表格_python拆分表格数据相关推荐

  1. vue element ui 利用xslx导出文档表格功能(纯前端导出下载文档)

    目录 前言 步骤: 1.下载xslx 2.导入xslx 3.template中给个点击事件 4.methods中定义函数实现导出 前言 本篇文章记录纯前端导出下载文档功能. 若想查看从后端接收文件流, ...

  2. element ui 的table的表头和表格没对齐

    在 app.vue的style里面加上 /* 解决element-ui的table表格控件表头与内容列不对齐问题 */.el-table th.gutter{display: table-cell!i ...

  3. python word 表格 框线_python设置表格边框的具体方法

    安装 xlwings 直接安装用 pip install xlwings,用 anaconda 的,已经内置了,见下图. 导入 xlwings import xlwings as xw 打开 Exce ...

  4. python表格处理实例_python列表格

    三款新功能发布,助力阿里云表格存储再次升级 阿里云表格存储于近期功能再升级,升级后的表格存储支持对DataHub采集的数据进行持久化存储,其Python SDK新增支持Python 3.x,以及最新发 ...

  5. element ui前端排序,某列有数据为空值时,排序错乱问题

    表格排序列的数据出现空值时,组件自带的排序功能不正常.而后查找了相关解决方法,有一网友给了我启示,解决了问题,现在照着思路写下步骤,日后再次遇到方便查找 解决方式是重新定义一个新数组:遍历表格数据da ...

  6. element ui table中想使得其中一列数据拥有横向滚动条的效果

    给需要展示的内容创建一个盒子将其包裹住,在css样式中插入这3行属性即可 width:80px; white-space:nowrap; overflow-x:scroll

  7. Element ui 中 el-cascader 级联动态加载数据方法

    话不多说,上代码 html部分: <el-cascader :props="treeOption" @change="onChange" style=&q ...

  8. element ui table的show-overflow-tooltip属性以及设置其宽度

    用vue+element ui框架,用到table表格,如果每列显示的内容过长则可以使用该属性,即 :show-overflow-tooltip="true",该属性可以让内容在一 ...

  9. python按某列拆分excel表格_Python实现将excel表格按某列拆分为多个sheet(模板格式不变)...

    #将一个excel表格,按照某列分为不同的sheet,并且将id作为sheet表格的名称 from openpyxl import load_workbook #加载需要拆分的总表个 wb = loa ...

  10. vue2.0 + element ui 实现表格穿梭框

    element ui 官网里介绍了穿梭框(Transfer),但在实际使用过程中,会出现一些问题: 1.穿梭框里能放置的内容太少,不能满足复杂的业务需求. 2.当选项过多时,穿梭框很难实现分页,左右两 ...

最新文章

  1. 9月21日科技联播:报告显示网约车案发率低于传统出租车;刘强东性侵案已移交美国检方...
  2. Scala的类和对象
  3. 去除icon图标特效,阴影,反光
  4. 文件操作之按照字符读写文件
  5. python转成exe_将python程序转换成exe程序
  6. 正则替换让一部分内容保持不变
  7. 亚洲综合竞争力排名发布:韩国位居第1,中国第9,大家怎么看?
  8. [探索 .NET 6]02 比较 WebApplicationBuilder 和 Host
  9. Google SVN托管和使用学习笔记
  10. 谷歌:CNN击败Transformer,有望成为预训练界新霸主!LeCun却沉默了...
  11. 8个最高效的Python爬虫框架,你用过几个?
  12. 新年春节海报模板|中国风艺术元素,就是不一样!
  13. 使用旧版本tensorflow出现了negative等报错的问题,AttributeError: 'module' object has no attribute 'xxx'
  14. 记录一次游戏服务器的压测调优记录(Golang语言)
  15. (转)Astar寻路教程
  16. 深度学习入门之猫vs狗(超简单)
  17. 道路照明智能监控用5G智慧灯杆网关
  18. c语言程序设计会出现什么问题,计算机C语言程序设计过程中的常见问题分析和研究...
  19. DHCP报文及其格式
  20. 伤害世界服务器修改,伤害世界获取GM权限修改方法讲解

热门文章

  1. vm虚拟机 centos7 联网(设置静态ip)
  2. java条件触发,触发器触发条件是什么?更改数据时实现方法是什么?
  3. 计算机原理内存详解,【讲给小白的计算机原理】什么是内存,内存的作用?
  4. java string是final_关于java:String和Final
  5. 2 Linux基本命令复习2
  6. Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决...
  7. Phoenix Tips (8) 多租户
  8. 高质量程序设计指南c++/c语言(19)--赋值操作符“=”
  9. dockerfile入门
  10. 并发编程学习之线程池