利⽤python对Excel中的特定数据提取并写⼊新表的⽅法最近刚开始学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_by_name('Sheet1')
tuple(sheet['A1':'C3'])
_sheet_by_name('Sheet2')
tuple(sheet2['A1':'C3'])
L1=repile(r'\d\d/\d\d/\d\d\d\d') #⽇期格式
L2=repile(r'[a-zA-Z0-9_]+@[a-zA-Z0-9-]+') #邮件格式
l1=[]
l2=[]
for rows in sheet['A1':'C3']: #提取⽇期和邮件数据
for cell in rows:
A=L1.search(cell.value)
up()
B=L2.search(cell.value)
up()
for rows in sheet2['A1':'A9']: #把⽇期数据写⼊新表
for cell in rows:
cell.value=a
dinate,cell.value)
for rows in sheet2['B1':'B9']: #把邮件数据写⼊新表
for cell in rows:
cell.value=b
dinate,cell.value)
return wb
g=Exceldivide('C:\\Users\\Desktop\\111_copy.xlsx')
100个python练手项目g.save('C:\\Users\\Desktop\\111_copy.xlsx') #保存
以上这篇利⽤python对Excel中的特定数据提取并写⼊新表的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论