您好,欢迎来到九壹网。
搜索
您的当前位置:首页利用python对Excel中的特定数据提取并写入新表的方法

利用python对Excel中的特定数据提取并写入新表的方法

来源:九壹网
利⽤python对Excel中的特定数据提取并写⼊新表的⽅法

最近刚开始学python,正好实习⼯作中遇到对excel中的数据进⾏处理的问题,就想到利⽤python来解决,也恰好练⼿。实际的问题是要从excel表中提取⽇期、邮件地址和时间,然后统计在⼀定时间段内某个⼈在某个项⽬上⽤了多少时间,最后做成⼀张数据透视表(这是问题的⼤致意思)。

⾸先要做的就是数据提取了,excel中本⾝有⼀个text to column的功能,但是对列中规律性不好的数据处理效果很差,不能分割出想要的数据,所以我果断选择⽤python来完成。

要⽤的库⼀个是对excel读写处理的,⼀个事正则表达式的库。因为xlwt和xlrd只能对03版以前的excel处理,所以我选择了openpyxl。

以下代码就是⾃⼰敲的,写了对⽇期和邮件地址的提取,最后出来效果不错,仅供⼤家参考,欢迎交流与改进。

import openpyxlimport 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中的特定数据提取并写⼊新表的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务