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 = 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM