利用python对Excel中的特定数据提取并写入新表
2017-06-20 20:45
666 查看
最近刚开始学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利用xlwt向Excel中写入数据示例
- 【利用Python进行数据分析——经验篇4】将多张DataFrame表写入到同一个Excel的不同sheet中
- 使用python提取html文件中的特定数据的实现代码
- 利用POI在Excel文档任意单元格写入数据
- python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。
- 【详解】Python写入Excel数据表
- 利用POI在Excel文档任意单元格写入数据
- 【详解】Python从数据库提取数据写入txt
- 利用资源头文件和动态语言库,提取动态语言库串表中的各项数据显示在Excel中
- 使用python 提取html文件中的特定数据
- Python实现数据处理——每隔一段时间把数据写入excel文件中
- 使用python 提取html文件中的特定数据
- 使用python提取html文件中的特定数据的实现代码
- 用Python将数据写入已存在Excel
- 利用asp将数据写入到新的excel文件中
- 将特定格式的TXT数据文件写入EXCEL
- 使用python 提取html文件中的特定数据
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- Python中生成(写入数据到)Excel文件