前言
在处理excel数据时发现了xlwt的局限性?不能写入超过65535行、256列的数据(因为它只支持Excel 2003及之前的版本,在这些版本的Excel中行数和列数有此限制),这对于实际应用还是不够的。为此经过一番寻找发现了一个支持07/10/13版本Excel的openpyxl,虽然功能很强大,但是操作起来感觉没有xlwt方便。下面分别说下几个模块的常用操作。
xlrd
xlrd是用来从Excel中读写数据的,但我平常只用它进行读操作,写操作会遇到些问题。用xlrd进行读取比较方便,流程和平常手动操作Excel一样,打开工作簿(Workbook),选择工作表(sheets),然后操作单元格(cell)。下面举个例子,例如要打开当前目录下名为”data.xlsx”的Excel文件,选择第一张工作表,然后读取第一行的全部内容并打印出来。Python代码如下:
#打开excel文件 data=xlrd.open_workbook('data.xlsx') #获取第一张工作表(通过索引的方式) table=data.sheets()[0] #data_list用来存放数据 data_list=[] #将table中第一行的数据读取并添加到data_list中 data_list.extend(table.row_values(0)) #打印出第一行的全部数据 for item in data_list: print item
上面的代码中读取一行用table.row_values(number),类似的读取一列用table.column_values(number),其中number为行索引,在xlrd中行和列都是从0开始索引的,因此Excel中最左上角的单元格A1是第0行第0列。
xlrd中读取某个单元格用table.cell(row,col)即可,其中row和col分别是单元格对应的行和列。
下面简单归纳一下xlrd的用法
xlrd用法总结
打开Excel工作簿
data=xlrd.open_workbook(filename)
查看工作簿中所有sheet的名称
data.sheet_names()
选择某一个工作表(通过索引或表名称)
#获取第一个工作表 table=data.sheets()[0] #通过索引获取第一个工作表 table=data.sheet_by_index(0) #通过表名称选择工作表 table=data.sheet_by_name(u'哈哈')
本文来源gao.dai.ma.com搞@代*码(网$
获取表格的行数和列数
nrows=table.nrows ncols=table.ncols
获取整行和整列的值
table.row_values(number) table.column_values(number)
通过循环读取表格的所有行
for rownum in xrange(table.nrows): print table.row_values(rownum)
获取单元格的值
cell_A1=table.row(0)[0].value #或者像下面这样 cell_A1=table.cell(0,0).value #或者像下面这样通过列索引 cell_A1=table.col(0)[0].value
写操作自己很少用,所以就不归纳了。
xlwt
如果说xlrd不是一个单纯的Reader(如果把xlrd中的后两个字符看成Reader,那么xlwt后两个字符类似看成Writer),那么xlwt就是一个纯粹的Writer了,因为它只能对Excel进行写操作。xlwt和xlrd不光名字像,连很多函数和操作格式也是完全相同。下面简要归纳一下常用操作。
xlwt常用操作
新建一个Excel文件(只能通过新建写入)
data=xlwt.Workbook()
新建一个工作表
table=data.add_sheet('name')