python自动化操作Excel(xlwt、xlrd、xlutils)

简介

python中通过xlwt、xlrd和xlutils三个模块操作xls文件。这三个模块的区别如下:

xlwt: xlwt用于在内存中生成一个xlsx/xls对象,增加表格数据,并把内存中的xls对象保存为本地磁盘xls文件。
xlrd:xlrd用于把本地xls文件加载到内存中,可以读取xls文件的表格数据,查询xls文件的相关信息。
xlutils:xlutils模块是xlrd和xlwt之间的桥梁,读取xls文件可以使用xlrd,新建创建文件可以使用xlwt,而修改文件则使用xlutils;可以使用xlutils模块中的copy模块拷贝一份通过xlrd读取到内存中的xls对象,就可以在拷贝对象上像xlwt中那样修改xls表格的内容,并保存到本地。

除此之外,还有一些其他的模块也可以用于操作excel文件,如xlwings、openyxl、xlsxwriter、win32com和pandas库

  • xlwt可以生成xls文件,xlrd可以读取已经存在的xls文件,但是如果要修改本地已经存在的xls文件,就需要用到xlutils模块。
  • xlutils模块是xlrd和xlwt之间的桥梁,可以使用xlutils模块中的copy模块,拷贝一份通过xlrd读取到内存中的xls对象,就可以在拷贝对象上像xlwt中那样修改xls表格的内容,并保存到本地。

使用案例

1、写入excel文件——xlwt的用法

# 创建一个excel对象
excel = xlwt.Workbook(encoding='utf-8', style_compression=0)

# 然后添加一个sheet表单
sheet1 = excel.add_sheet("sheet1", cell_overwrite_ok=True)

# 添加自己想写入表单的数据
sheet1.write(0,0,"name") #向(0,0)单元格写入name
sheet1.write(0,1,"age") #向(0,1)单元格写入age
sheet1.write(1,0,"小明") #向(1,0)单元格写入小明
sheet1.write(1,1,18) #向(1,1)单元格写入18

# 保存文件
excel.save(u"exapmle.xls")

运行结果:
在这里插入图片描述

2、读取excel文件——xlrd的用法

2.1 基本用法——读取指定单元格的数据
# 打开excel文件
excel = xlrd.open_workbook("exapmle.xls", style_compression=0)

# 打开sheet表单
sheet1 = excel.sheet_by_name("sheet1", cell_overwrite_ok=True) #通过表单名打开表单
sheets = excel.sheets() # 获取所有sheets数
sheet1 = excel.sheet_by_index(0) #通过表单的序号打开表单,序号从0开始
sheet1 = excel.sheets()[0]       # 同样获取表单
row_data = sheet1.row_values(0)  # 获取第一行数据 type是list
col_data = sheet1.col_values(0)  # 获取第一列数据 type是list

# 获取表单中单元格的值
cell_value0_0 = sheet1.cell(0,0).value #获取单元格(0,0)的值
cell_value0_1 = sheet1.cell_value(0,1) #获取单元格(0,1)的值
cell_value1_0 = sheet1.cell_value(1,0) #获取单元格(1,0)的值
cell_value1_1 = sheet1.cell(1,1).value #获取单元格(1,1)的值

#输出获取到的结果
print(cell_value0_0,cell_value0_1)
print(cell_value1_0,cell_value1_1)
2.2 get_rows()——读取表单中的所有数据
# 除此之外,还可以使用以下方法获取excel中的所有数据
for i in sheet1.get_rows():#使用get_rows()方法,返回一个生成器
    print(i)

运行结果如下图:
在这里插入图片描述

2.3 ncols和nrows——获取表单中数据的行数和列数
#获取列数
cols = sheet1.ncols

#获取行数
rows = sheet1.nrows

#输出结果
print(cols,rows)

输出结果:
在这里插入图片描述

注: 不管哪个操作,都要先打开相应表单才可以进行后续操作。

3、使用xlutils修改本地xls文件内容——xlutils的用法

  • 注:修改的是xls格式的excel,不是xlsx格式

xlutils安装包下载链接: https://pypi.python.org/pypi/xlutils
http://download.csdn.net/download/dcrmg/10040953

目前最新版本是2.0 ++ 名称是 “xlutils-2.0.0-py2.py3-none-any.whl”
安装指令: pip install xlutils-2.0.0-py2.py3-none-any.whl

# 导入模块
from xlutils.copy import copy
import xlrd

# 打开想要修改的excel文件
excel = xlrd.open_workbook("exapmle.xls")

# 复制想要修改的文件
excel_copy = copy(excel)

# 打开想要修改的表单
sheet1 = excel_copy.get_sheet("sheet1") #此处可以填入序号或者表单名

# 修改想要修改的单元格
sheet1.write(1,0,"小李") #修改(1,0)单元格数据为小李
sheet1.write(1,1,23) #修改(1,1)单元格数据为23

# 保存修改过后的文件
excel_copy.save("exapmle.xls")

修改前的结果:
在这里插入图片描述
修改后的结果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值