利用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模块之time模块(实例讲解)
Sep 13 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python中垃圾回收和del语句详解
Nov 15 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Django中URL的参数传递的实现
Aug 04 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Python读写压缩文件的方法
Jul 30 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 MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
重载toString实现JS HashMap分析
2011/03/13 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
如何使用Python 打印各种三角形
2019/06/28 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
什么是接口(Interface)?
2013/02/01 面试题
如何提高JDBC的性能
2013/04/30 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
《海底世界》教学反思
2014/04/16 职场文书
挂靠协议书范本
2014/04/22 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python