Python之xlrd——中文文档
下载
下载地址:http://pypi.python.org/pypi/xlrd
官网地址:http://www.python-excel.org/
文档地址:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html
文档pdf下载:http://www.simplistix.co.uk/presentations/python-excel.pdf
安装
1.Windows系统:使用WinZip或类似工具解压xlrd-0.7.1.zip:
view sourceprint?1 C:\> cd xlrd-0.7.1
2 C:\xlrd-0.7.1> \Python26\python setup.py install
2.Windows系统下,你可以下载运行xlrd-0.7.1.win32.exe安装。
读取Excel文件
下面展示的所有的例子都是基于xlrd目录的教程。
打开Workbooks
Workbooks能从一个文件、一个mmap.mmap对象或一个字符串加载:
view sourceprint?01 from mmap import mmap,ACCESS_READ
02 from xlrd import open_workbook
03
04 print open_workbook('易做图.xls')
05
06 with open('易做图.xls','rb') as f:
07 print open_workbook(
08 file_contents=mmap(f.fileno(),0,acc
09 )
10
11 aString = open('易做图.xls','rb').read()
12 print open_workbook(file_contents=aString)
操作Workbook
这是一个简单操作workbook的例子:
view sourceprint?01 from xlrd import open_workbook
02
03 wb = open_workbook('易做图.xls')
04
05 for s in wb.sheets():
06 print 'Sheet:',s.name
07 for row in range(s.nrows):
08 values = []
09 for col in range(s.ncols):
10 values.append(s.cell(row,col).value)
11 print ','.join(values)
12 print
下面几乎没有小节涉及到操作workbook的更多细节。
揭秘Book
通过open_workbook返回的xlrd.Book对象包含了所有对工作簿要的事情,能被用于在工作簿中取得独立的sheet。
这个nsheets属性是一个整数,包含工作簿sheet的数量。这个属性与sheet_by_index方法结合起来是获取独立sheet最常用的方法。
sheet_names方法返回包含工作簿中所有sheet名字的unicode列表。单独的sheet可以通过sheet_by_name方法使用这些名字获取。
sheets方法的结果是迭代获取工作簿中的每个sheet。
下面是这些方法和属性的例子示范:
view sourceprint?01 from xlrd import open_workbook
02
03 book = open_workbook('易做图.xls')
04
05 print book.nsheets
06
07 for sheet_index in range(book.nsheets):
08 print book.sheet_by_index(sheet_index)
09
10 print book.sheet_names()
11 for sheet_name in book.sheet_names():
12 print book.sheet_by_name(sheet_name)
13
14 for sheet in book.sheets():
15 print sheet
xlrd.Book对象有与工作簿内容相关的其它属性,但很少用到:
codepage
countries
user_name
如果你可能需要运用这些属性,请查看xlrd文档。
揭秘Sheet
通过上面介绍的方法返回的xlrd.sheet.Sheet对象包含了所有对worksheet和它的内容操作的信息。
name属性是worksheet名字的unicode表示。
nrows和ncols属性分别包含了worksheet中的行数和列数。
下面例子展示了如何使用迭代来显示一个worksheet的内容:
view sourceprint?01 from xlrd import open_workbook,cellname
02
03 book = open_workbook('odd.xls')
04 sheet = book.sheet_by_index(0)
05
06 print sheet.name
07
08 print sheet.nrows
09 print sheet.ncols
10
11 for row_index in range(sheet.nrows):
12 for col_index in range(sheet.ncols):
13 print cellname(row_index,col_index),'-',
14 print sheet.cell(row_index,col_index).value
xlrd.sheet.Sheet对象有其他一些与worksheet内容相关的属性,但很少使用:
col_label_ranges
row_label_ranges
visibility
如果你认为你可能需要运用这些属性,请参看xlrd文档。
获得特定的单元格
正如你在前面例子中看到的,Sheet对象的cell方法能用来返回特定单元格的内容。
cell方法返回一个xlrd.sheet.Cell对象。除了value包含了单元格的真实值,ctype包含了单元格的类型,Cell对象几乎没有其他属性。
另外,Sheet对象有两个方法返回这两种数据类型。cell_value方法返回特定单元格的值,而cell_type方法返回特定单元格的类型。这两个方法执行时比获取Cell对象更快。
后面会讲述更多Cell类型的细节。下面示范了这些方法,属性和起作用的类:
view sourceprint?01 from xlrd import open_workbook,XL_CELL_TEXT
02
03 book = open_workbook('odd.xls')
04 sheet = book.sheet_by_index(1)
05
06 cell = sheet.cell(0,0)
07 print cell
08 print cell.value
09 print cell.ctype==XL_CELL_TEXT
10
11 for i in range(sheet.ncols):
12 print sheet.cell_type(1,i),sheet.cell_value(1,i)
迭代Sheet的内容
我们已经见过怎么迭代worksheet的内容,获取产生的单独的单元格。然而,有更容易的方法来获取单元格组。有一套对称的方法来通过行或列获取单元格组的信息。
row和col方法分别返回一整行(列)的Cell对象。
补充:Web开发 , Python ,