python 操作 Excel

    昨天妹子传来一个Excel要我处理一下,形式如下图:python 操作 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'

 
程序处理后结果如下图,妹子的任务,花了差不多半个小时就搞定了,还算满意:

python 操作 Excel

 

上一篇:C++读写二进制文件


下一篇:Linux存储管理——EXT4文件系统【CenOs】