昨天妹子传来一个Excel要我处理一下,形式如下图:
就是要把邮编,公司,地址,电话等分开到各个列。扫了一眼,2000多条格式还是比较统一,有几百条可能不是按这个顺序,为了方便,就忽略那些了。如是乎,上网搜了下python操作Excel的文章。
http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
这篇文章不错,我看了如何读取文章就直接操作了,python就是如此简单,呵呵,安装好库,代码如下:
# -*- coding: utf-8 -*- import xlrd import sys from string import lstrip, rstrip reload(sys) sys.setdefaultencoding('gb18030') #加上这句,要不下面的write报Ascii什么的错误 data = xlrd.open_workbook(u'C:\\Users\\Administrator\\Desktop\\XXXXX.xls') File1 = open('C:\\Users\\Administrator\\Desktop\\File1.csv', "w+") #成功处理的文件 File2 = open('C:\\Users\\Administrator\\Desktop\\File2.csv', "w+") #不符合格式的文件 table = data.sheets()[0] for i in range(21, 3267): context = table.row_values(i)[0] (PostPos, filmPos, AddrPos, LinkManPos, TelPos, MobilPos, FaxPos, EmailPos, NetPos, ItemPos) = ( context.find(u'邮编'), context.find(u'公司'), context.find(u'地址'), context.find(u'联系人'), context.find(u'电话'), context.find(u'手机'), context.find(u'传真'), context.find(u'Email'), context.find(u'网址'), context.find(u'主营项目')) if PostPos == -1: File2.write(context) #忽略的保存到File2 File2.write('\n') else: if PostPos < filmPos < AddrPos < LinkManPos < TelPos < MobilPos < FaxPos < EmailPos < ItemPos: File1.write(context[PostPos+3: filmPos]) File1.write(',') File1.write(context[filmPos+3: AddrPos]) File1.write(',') File1.write(context[AddrPos+3: LinkManPos]) File1.write(',') File1.write(context[LinkManPos+4: TelPos]) File1.write(',') File1.write(context[TelPos+3: MobilPos]) File1.write(',') File1.write(context[MobilPos+3: FaxPos]) File1.write(',') File1.write(context[FaxPos+3: EmailPos]) File1.write(',') File1.write(context[EmailPos+6: NetPos]) File1.write(',') File1.write(context[NetPos+3: ItemPos]) File1.write(',') File1.write(context[ItemPos+5:]) File1.write('\n') else: File2.write(context) File2.write('\n') File1.close() File2.close() print 'finished'
程序处理后结果如下图,妹子的任务,花了差不多半个小时就搞定了,还算满意: