python使用xlrd+xlwt实现简单的xls读写操作
前言
本文主要使用两个模块来实现对excel表格的操作,负责读取的xlrd(xls read)和负责写入的xlwt(xls write)。先安装模块:
pip install xlrd
pip install xlwt
首先,需要声明的是,这两个模块仅对xls格式的表格生效,若是xlsx格式的表格则会报错。
读取
读取需要用到xlrd模块,首先导入:
import xlrd
打开文件
# 打开文件 workbook = xlrd.open_workbook(r'F:\demo.xls')
载入工作表
使用workbook.sheet_names()可以查看该文件下的所有工作表名称列表。载入工作表时有两种方式,一种是通过名称载入,一种是通过索引序号载入。值得注意的是,序号依然是从0开始计数的,包括后面会提到的行数、列数都是从0开始计数的,后文不再赘述。
#通过序号载入 sheet = workbook.sheet_by_index(0) #通过名称载入 sheet = workbook.sheet_by_name("sheet1")
获取数据
1.获取行数和列数
#行数 nrows = sheet.nrows #列数 ncols = sheet.ncols
2.获取整行和整列的值(返回一个列表)
#获取第i行的数据 sheet.row_values(i) #获取第i列的数据 sheet.col_values(i)
3.获取某一单元格的数据
单元格用cell表示,获取某一单元格的数据,可以先获取所在行或者列的数据列表,再从列表中取,也可以直接通过cell来定位。
#获取第i行第j列的单元格数据,并采用utf-8编码,一般来说编码可不写 sheet.cell(i,j).value.encode('utf-8')
写入
写入需要用到xlwt模块,先导入:
import xlwt
写入部分相对来说简单一些,直接上代码:
#初始化并创建一个工作簿对象 book = xlwt.Workbook() #创建一个名为sheetname的表单 sheet = book.add_sheet('sheetname') #在第i行,第j列,写入数据data sheet.write(i,j,data) #将工作簿以bookname命名并保存 book.save('bookname.xls')
这里需要注意一点,执行写入操作后,必须要用save方法保存,否则写入的数据将无法反映到文件上。
写入到合并单元格
#合并单元格:将由row_start,row_finish行,col_start,col_finish列构成的区域单元格合并并写入value值 sheet.write_merge(row_start,row_finish,col_start,col_finish,value)