利用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实现带验证码网站的自动登陆实现代码
Jan 12 Python
在Python中使用模块的教程
Apr 27 Python
Python基于有道实现英汉字典功能
Jul 25 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
python批量创建指定名称的文件夹
Mar 21 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python进程间的通信之语法学习
Apr 11 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
php二维码生成
2015/10/19 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
详解vue中axios的封装
2018/07/18 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
深入理解Python 代码优化详解
2014/10/27 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
Python二元赋值实用技巧解析
2019/10/25 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
python实现数字炸弹游戏
2020/07/17 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
个人作风建设自查报告
2014/10/22 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL