利用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 23 Python
python和pyqt实现360的CLable控件
Feb 21 Python
python 正确保留多位小数的实例
Jul 16 Python
Python并行分布式框架Celery详解
Oct 15 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
python try 异常处理(史上最全)
Mar 07 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
如何用Python来搭建一个简单的推荐系统
Aug 07 Python
python excel转换csv代码实例
Aug 26 Python
简单了解django文件下载方式
Feb 10 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Django Xadmin多对多字段过滤实例
Apr 07 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php上传文件问题汇总
2015/01/30 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
取得传值的函数
2006/10/27 Javascript
常用的javascript function代码
2008/05/23 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
Python中文件操作简明介绍
2015/04/13 Python
Python的Django框架使用入门指引
2015/04/15 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
如何写好优秀的创业计划书
2014/01/30 职场文书
运动会解说词100字
2014/01/31 职场文书
新闻发布会主持词
2014/03/28 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
matlab xlabel位置的设置方式
2021/05/21 Python