python表格操作之xlrd和xlwt的用法

    当我们用python进行excel表格操作,需要导入xlrd或者xlwt库,但我们在使用者两个库时,却可能经常遇到各种报错。这是因为两个库的用法不同造成的,根据库名称也可以比较直观的发现,xlrd库主要用于表格的读取,xlwt则用于表格的写入。

一、xlrd库

1、 打开文件(获取一个工作表):

import xlrd
data = xlrd.open_workbook("01.xls")#打开当前目录下名为01.xls的文档
#此时data相当于指向该文件的指针
table = data.sheet_by_index(0)#通过索引获取,例如打开第一个sheet表格
table = data.sheet_by_name("sheet1")#通过名称获取,如读取sheet1表单
table = data.sheets()[0]#通过索引顺序获取
# 以上三个函数都会返回一个xlrd.sheet.Sheet()对象

names = data.sheet_names()    #返回book中所有工作表的名字
data.sheet_loaded(sheet_name or indx)   # 检查某个sheet是否导入完毕

2 、对行进行操作:

nrows = table.nrows  #获取该sheet中的有效行数
table.row(rowx)  #返回由该列中所有的单元格对象组成的列表
table.row_slice(rowx)  #返回由该行中所有的单元格对象组成的列表
table.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表
table.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表
table.row_len(rowx) #返回该行的有效单元格长度

3、对列进行操作:

ncols = table.ncols#获取列表的有效列数
table.col(colx, start_rowx=0, end_rowx=None)#返回由该列中所有的单元格对象组成的列表
table.col_slice(colx, start_rowx=0, end_rowx=None)#返回由该列中所有的单元格对象组成的列表
table.col_types(colx, start_rowx=0, end_rowx=None)#返回由该列中所有单元格的数据类型组成的列表
table.col_values(colx, start_rowx=0, end_rowx=None)#返回由该列中所有单元格的数据组成的列表

4、 对单元格进行操作:

table.cell(rowx, colx)  # 返回单元格对象
table.cell_type(rowx, colx)  # 返回单元格中的数据类型
table.cell_value(rowx,colx)   #返回单元格中的数据

二、xlwt库

 1、创建和保存

创建一个工作簿,设置编码格式为“utf-8”,默认格式是ASCII,为了方便写入中文,一般都要设置成UTF-8

import xlwt
wb = xlwt.Workbook(encoding="utf-8")  # 创建一个工作薄
sheet = wb.add_sheet('文件阅读记录表')  # 创建一个工作表
wb.save("xlwt_test.xls")  # 保存excle文件

2、写入数据

# 在指定行写入一行数据
# 注: xlwt 没有 write_line 之类的方法, 所以要自己逐个单元格写入.
data = ['aaa', 'bbb', 'ccc']
rowx = 1  # 假设指定在第二行
for colx, value in enumerate(data):
    sheet.write(rowx, colx, value)
        
# 在指定列写入一列数据
# 注: xlwt 没有 write_col 之类的方法, 所以要自己逐个单元格写入.
data = ['aaa', 'bbb', 'ccc']
colx = 2  # 假设指定在第三列
for rowx, value in enumerate(data):
    sheet.write(rowx, colx, value)

三、xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

     当想要打开一个已有表格并修改表中数据,则需要同时使用到两个库,xlrd用于打开已有表格,当对数据修改完成或者增加数据,需要用xlwt进行写入并保存。但是两个库的函数无法混用,容易在查找数据、修改数据、保存数据等过程中产生报错,此时可以用xlutils库对表格复制、分割、筛选等,以完成我们想要的操作。

    如:

 

 
上一篇:Python用xlwt往Excel写入数据


下一篇:python 读取excel & 往excel中写入内容 [xlrd, xlwt, xlutils]