利用python对Excel中的特定数据提取并写入新表的方法


Posted in Python onJune 14, 2018

最近刚开始学python,正好实习工作中遇到对excel中的数据进行处理的问题,就想到利用python来解决,也恰好练手。

实际的问题是要从excel表中提取日期、邮件地址和时间,然后统计在一定时间段内某个人在某个项目上用了多少时间,最后做成一张数据透视表(这是问题的大致意思)。

首先要做的就是数据提取了,excel中本身有一个text to column的功能,但是对列中规律性不好的数据处理效果很差,不能分割出想要的数据,所以我果断选择用python来完成。

要用的库一个是对excel读写处理的,一个事正则表达式的库。

因为xlwt和xlrd只能对03版以前的excel处理,所以我选择了openpyxl。

以下代码就是自己敲的,写了对日期和邮件地址的提取,最后出来效果不错,仅供大家参考,欢迎交流与改进。

import openpyxl
import re

def Exceldivide(file_dir):
 wb=openpyxl.load_workbook(file_dir)   #打开原有的excel表
 sheet=wb.get_sheet_by_name('Sheet1')
 tuple(sheet['A1':'C3'])

 wb.create_sheet('Sheet2')     #新建一个表
 sheet2=wb.get_sheet_by_name('Sheet2')
 tuple(sheet2['A1':'C3'])

 L1=re.compile(r'\d\d/\d\d/\d\d\d\d')  #日期格式
 L2=re.compile(r'[a-zA-Z0-9_]+@[a-zA-Z0-9-]+.com') #邮件格式
 l1=[]
 l2=[]
 for rows in sheet['A1':'C3']:   #提取日期和邮件数据
  for cell in rows:
   A=L1.search(cell.value)
   a=A.group()
   B=L2.search(cell.value)
   b=B.group()
 for rows in sheet2['A1':'A9']:   #把日期数据写入新表
 for cell in rows:
  cell.value=a
  print(cell.coordinate,cell.value)
 for rows in sheet2['B1':'B9']:  #把邮件数据写入新表  
 for cell in rows:
  cell.value=b
  print(cell.coordinate,cell.value)
 return wb

g=Exceldivide('C:\\Users\\Desktop\\111_copy.xlsx')
g.save('C:\\Users\\Desktop\\111_copy.xlsx') #保存

以上这篇利用python对Excel中的特定数据提取并写入新表的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python抓取模板之家的CSS模板
Mar 16 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
目前最全的python的就业方向
Jun 05 Python
PyQt5固定窗口大小的方法
Jun 18 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
详解Django admin高级用法
Nov 06 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
Python pandas如何向excel添加数据
May 22 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
python实现图片九宫格分割的示例
Apr 25 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 #Python
详解python之协程gevent模块
Jun 14 #Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 #Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 #Python
tensorflow: 查看 tensor详细数值方法
Jun 13 #Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 #Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 #Python
You might like
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
python类继承用法实例分析
2014/10/10 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
深入解析神经网络从原理到实现
2019/07/26 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
全陪导游欢迎词
2014/01/17 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers