欢迎关注”生信修炼手册”!
xlrd模块用于读取excel文件,xlwt模块用于写入excel文件,二者搭配,可以灵活的操作excel文件。相比openpyxl模块,xlrd和xlwt可以操作不仅可以操作后缀为xlsx的文件,也可以操作后缀为xls的文件。
首先来看下xlrd模块,按照workbook, sheet,cell的3个层级,用法如下
1. workbook
通过open_workbook方法来获取对应的workbook,代码如下
>>> import xlrd
>>> workbook = xlrd.open_workbook('input.xlsx')
2. sheet
从workbook出发,可以通过整数下标索引或者对应的sheet name, 访问具体的sheet对象,代码如下
# 返回sheet的个数
>>> workbook.nsheets
4
# 返回sheet构成的list
>>> workbook.sheets()
[<xlrd.sheet.Sheet object at 0x02FFBC70>, <xlrd.sheet.Sheet object at 0x02FFBCB8>, <xlrd.sheet.Sheet object at 0x02FFBD00>, <xlrd.sheet.Sheet object at 0x02FFBD18>]
>>> workbook.sheets()[0]
<xlrd.sheet.Sheet object at 0x02FFBC70>
# 通过索引访问sheet
>>> workbook.sheet_by_index(0)
<xlrd.sheet.Sheet object at 0x02FFBC70>
# 返回sheet names构成的list
>>> workbook.sheet_names()
['all_gene', 'target_gene', 'filter_gene', 'cnv_result']
# 通过name访问sheet
>>> workbook.sheet_by_name('all_gene')
<xlrd.sheet.Sheet object at 0x02FFBC70>
3. cell
从sheet对象出发,可以访问对应的行,列以及单元格,代码如下
>>> ws = workbook.sheet_by_name('all_gene')
>>> ws.name
'all_gene'
# 返回行数
>>> ws.nrows
27280
# 返回列数
>>> ws.ncols
21
# 通过行列索引,返回cell对象
>>> ws.cell(0, 0)
text:'gene'
# 通过行列索引,返回cell对应的值
>>> ws.cell_value(0,0)
'gene'
# 通过以下函数对行或者列进行切片操作
# 第一个参数为列的索引
# 第二个参数为起始行
# 第三个参数为终止行
# 返回值
>>> ws.col_values(0, 0