python下读取excel文件

项目中要用到这个,所以记录一下。

python下读取excel文件方法多种,用的是普通的xlrd插件,因为它各种版本的excel文件都可读。

首先在https://pypi.python.org/pypi/xlrd下载插件安装,命令是“python setup.py install”,然后直接import xlrd就可以了。

下面是找到的现成函数,一个是按表的索引读,一个是按表名读,其实都一样啦。

 1 import xlrd
 2 
 3 def open_excel(filename= 'file.xls'):
 4     try:
 5         data = xlrd.open_workbook(filename)
 6         return data
 7     except Exception,e:
 8         print str(e)
 9         
10 def excel_table_byindex(filename= 'file.xls',colnameindex=0,by_index=0):
11     data = open_excel(filename)
12     table = data.sheets()[by_index]
13     nrows = table.nrows
14     #ncols = table.ncols
15     colnames =  table.row_values(colnameindex)
16     datalist =[]
17     for rownum in range(1,nrows):
18         row = table.row_values(rownum)
19         if row:
20             app = {}
21             for i in range(len(colnames)):
22                 app[colnames[i]] = row[i] 
23             datalist.append(app)
24     return datalist
25 
26 def excel_table_byname(filename= 'file.xls',colnameindex=0,by_name=u'Sheet1'):
27     data = open_excel(filename)
28     table = data.sheet_by_name(by_name)
29     nrows = table.nrows
30     colnames =  table.row_values(colnameindex)
31     datalist =[]
32     for rownum in range(1,nrows):
33         row = table.row_values(rownum)
34         if row:
35             app = {}
36             for i in range(len(colnames)):
37                 app[colnames[i]] = row[i]
38             datalist.append(app)
39     return datalist
40 
41 def test():
42     tables = excel_table_byindex()
43     for row in tables:
44         print row

 

posted @ 2014-03-05 07:58  NEU-Jimmy  阅读(340)  评论(0编辑  收藏  举报