当前位置:编程学习 > python >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,