首页 > 代码库 > python读取excel一例-------从工资表逐行提取信息
python读取excel一例-------从工资表逐行提取信息
在工作中经常要用到python操作excel,比如笔者公司中一个人事MM在发工资单的时候,需要从几百行的excel表中逐条的粘出信息,然后逐个的发送到员工的邮箱中。人事MM对此事不胜其烦,终于在某天请我吃了一碗烩面,于是我给她编写了一个小工具,用python程序读出excel的信息,然后自动发送到员工邮箱中。本着开源分享的原则,我把代码贴出来供有需要的人使用,因为发邮件的部分读取的是公司邮箱的通讯录,所以对程序进行了阉割,只贴出读取excle的部分。如果你用的是类似126或腾讯企业邮箱之类的公共邮局,那么网上已经有很多从中读取通讯录并自动发送邮件的代码。
python读取excle有很多第三方类库可以使用,本人用的是xlrd 0.7.1版本,python版本为2.7.9。因为不再发送邮件,所以读出的信息在控制台输出,同时保存一份到文件中。
话不多说,上代码:
1 # -*- coding: gbk -*- 2 import xlrd 3 import sys 4 from datetime import date,datetime,time 5 6 reload(sys) 7 sys.setdefaultencoding(‘gbk‘) 8 9 data = http://www.mamicode.com/xlrd.open_workbook(‘test1.xls‘) 10 table = data.sheet_by_index(0) 11 file_object = open(‘log.txt‘,‘a+‘) 12 13 nrows = table.nrows 14 ncols = table.ncols 15 16 17 for row in range(2,nrows): 18 name=table.cell(row,1).value 19 print ‘尊敬的‘+name+‘:\n 感谢您为公司做出的辛苦努力,以下是您9月份的工资信息,如有疑问请与人资联系。‘ 20 file_object.write( ‘尊敬的‘+name+‘:\n 感谢您为公司做出的辛苦努力,以下是您9月份的工资信息,如有疑问请与人资联系。‘) 21 print ‘-------‘+name+‘--------‘ 22 file_object.write(‘\n-------‘+name+‘--------\n‘) 23 for col in range(ncols): 24 cell = table.cell(row,col).value 25 h1=table.cell(0,col).value 26 h2=table.cell(1,col).value 27 ctype=table.cell(row,col).ctype 28 if ctype==1: 29 print h1+h2+":"+cell 30 file_object.write(h1+h2+":"+cell+"\n") 31 elif ctype==3: 32 d=datetime(*xlrd.xldate_as_tuple(cell,0)) 33 print h1+h2+":"+d.strftime("%Y-%m-%d") 34 file_object.write(h1+h2+":"+d.strftime("%Y-%m-%d")+"\n") 35 else: 36 print h1+h2+":"+str(cell) 37 file_object.write(h1+h2+":"+str(cell)+"\n") 38 print ‘-------end--------‘ 39 file_object.write(‘-------end--------\n‘) 40 41 file_object.close()
文件中使用的excel文件格式如下:
部分运行结果截图:
附件中包括此文件的程序代码和使用的excel文件,以及xlrd安装程序。
gongzi.rar
python读取excel一例-------从工资表逐行提取信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。