昨天搞了一晚上,終於把python讀excel的程式調試通過了,現在記錄先:
我主要嘗試了pyxll 和 openpyxl 兩個模組
1.pyxll號稱支援excel2010,看了看它提供的例子,主要是以操作excel的儲存格為主,我主要關注的是讀excel並對儲存格內容進行解析
它這一塊從demo程式來看好像沒有執行個體
剛開始不知道怎麼安裝該模組,折騰了一段時間,發覺直接將該程式包裡面的pyxll.py拷貝到 安裝目錄C:\Python26\Lib就可以運行了
後來我發覺離我目標有點距離,就沒有深入研究了.
2.openpyxl-1.5.2
我的環境: win7 python2.6
安裝openpyxl
http://packages.python.org/an_example_pypi_project/setuptools.html
參照上面官方文檔,
1) 到網站http://pypi.python.org/pypi/setuptools下載setuptools,安裝setuptools
2)到window cmd 視窗, Cd 到你下載的openpyxl-1.5.2 目錄, 運行 python.exe setup.py install
或者 python.exe setup.py bdist_wininst 得到一個 .exe 安裝包
3) 安裝應該OK了
運行原始碼:
#-*- coding:utf-8 -*from openpyxl.reader.excel import load_workbookimport time#開始時間startTime = time.time()#讀取excel2007檔案wb = load_workbook(filename = r'demo.xlsx')#顯示有多少張表print "Worksheet range(s):", wb.get_named_ranges()print "Worksheet name(s):", wb.get_sheet_names()#取第一張表sheetnames = wb.get_sheet_names()ws = wb.get_sheet_by_name(sheetnames[0])#顯示表名,表行數,表列數print "Work Sheet Titile:",ws.titleprint "Work Sheet Rows:",ws.get_highest_row()print "Work Sheet Cols:",ws.get_highest_column()# 建立儲存資料的字典 data_dic = {} #把資料存到字典中for rx in range(ws.get_highest_row()): temp_list = [] pid = ws.cell(row = rx,column = 0).value w1 = ws.cell(row = rx,column = 1).value w2 = ws.cell(row = rx,column = 2).value w3 = ws.cell(row = rx,column = 3).value w4 = ws.cell(row = rx,column = 4).value temp_list = [w1,w2,w3,w4] data_dic[pid] = temp_list#列印字典資料個數print 'Total:%d' %len(data_dic)
輸出結果:
Worksheet range(s): []
Worksheet name(s): ['Sheet1', 'Sheet2', 'Sheet3']
Work Sheet Titile: Sheet1
Work Sheet Rows: 1
Work Sheet Cols: 1
Total:1