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