利用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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python语言描述随机梯度下降法
Jan 04 Python
python实现简易版计算器
Jun 22 Python
python如何实现反向迭代
Mar 20 Python
python实现windows壁纸定期更换功能
Jan 21 Python
python实现剪切功能
Jan 23 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python中数字是否为可变类型
Jul 08 Python
python如何实现word批量转HTML
Sep 30 Python
python 实现Requests发送带cookies的请求
Feb 08 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
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
用jscript实现新建word文档
2007/06/15 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
react-router实现按需加载
2017/05/09 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
What is EJB
2016/07/22 面试题
园林技术个人的自我评价
2014/01/08 职场文书
幼儿园门卫制度
2014/01/29 职场文书
索桥的故事教学反思
2014/02/06 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
优秀团队申报材料
2014/12/26 职场文书
社区义诊通知
2015/04/24 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
Java 多线程并发FutureTask
2022/06/28 Java/Android