简介
xlrd是python的一个第三方模块,可以实现跨平台读Microsoft Excel文件。(它有一个兄弟叫xlwt,专注于写Excel文件。)
它并不像win2com那样借助COM技术来访问Excel,而是直接分析Excel文件格式,从中解析数据。因此你可以在任何支持python的平台上使用excel文件。这一点它比win2com要优秀得多。
另外,它对unicode支持的很好,这也是我青睐它的重要原因。
它的工作原理所限,我们不能期望它覆盖Excel全部的功能,访问到全部的数据。
比如,下面这些数据类型xlrd会忽略掉:
- 图表,宏,图片等嵌入对象(包括嵌入的worksheet)。
- VBA模块。
- 公式(只能识别公式的计算结果,而不是公式本身)。
- 注释。
- 链接。
但一些简单的读取还是得心应手的,这已经能满足大多数情况下的需求。
现在它能支持的Excel版本包括:2004, 2003, XP, 2000, 97, 95, 5.0, 4.0, 3.0, 2.1, 2.0。 官方未说明它是否能支持Excel 2007。
它有两个分支,分别是:
xlrd (http://pypi.python.org/pypi/xlrd) 针对Python 2.x系列。
xlrd3(http://pypi.python.org/pypi/xlrd3) 针对Python 3.x系列。
这两个分支是100%兼容的,也就是说,它们的使用完全一样,你在3.x系列中怎么用xlrd,在2.x系列中仍然这么用。
以下的实际操作都使用xlrd3,在python 3.2下完成。
安装
xlrd在python官网的发布主页是http://pypi.python.org/pypi/xlrd3 ,当前xlrd3的最新版本是0.1.4。
下载得到一个压缩包,假设我们将它解压到D:\Download\xlrd3-0.1.4,可以看到如下文件。
可以看到有文档、示例、测试文件等。注意其中的setup.py,它是标准的python模块安装方式。
先确认一下python的版本与xlrd3是否一致。
D:\Download\xlrd3-0.1.4>python -V
Python 3.2.2
OK,我们用的是python3,接下来执行安装脚本。
D:\Download\xlrd3-0.1.4>python setup.py install
一长串输出后,没有看到错误的话,xlrd就安装成功了。
试用
假设我们有一个文件叫test.xls,位于D:\Workspace\Python\xlrd3-test\test.xls
其内容如下:
ff
这是一张9行4列的PC主机报价单,当然,价格全是扯淡。
下面使用xlrd程序将PC这张表的内容打印出来。
01 | import xlrd3 |
02 |
03 | def main(): |
04 | xlsfile = xlrd3.open_workbook( "D:\\Workspace\\Python\\xlrd3-test\\test.xls" ) |
05 | try : |
06 | mysheet = xlsfile.sheet_by_name( "PC" ) |
07 | except : |
08 | print ( "no sheet in %s named PC" ) |
09 | return |
10 |
11 | # total rows and cols |
12 | print ( "%d rows, %d cols" % (mysheet.nrows, mysheet.ncols)) |
13 |
14 | for row in range ( 0 , mysheet.nrows): |
15 | temp = "" |
16 | for col in range ( 0 , mysheet.ncols): |
17 | if mysheet.cell(row, col).value ! = None : |
18 | temp + = str (mysheet.cell(row, col).value) + "\t" |
19 | print (temp) |
20 |
21 | if __name__ = = '__main__' : |
22 | main() |
输出:
d
大功告成!
以上仅是一个入门介绍,关于xlrd更多的信息请参考:
http://packages.python.org/xlrd3/
http://www.lexicon.net/sjmachin/xlrd.htm
来自:http://www.360doc.com/content/12/0918/22/9369336_236837182.shtml