昨天搞了一晚上,终于把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_workbook import 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.title print "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