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