python操作Excel(xlwt、xlrd、xlutils)

简介

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

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

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

三个模块的安装方法

还是使用pip指令进行安装,具体如下:

  1. xlwt:pip install xlwt
  2. xlrd:pip install xlrd
  3. xlutils:pip install xluntils
使用示例

1、创建excel文件——xlwt的用法

# 创建一个excel对象
excel = xlwt.Workbook()

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

# 添加自己想写入表单的数据
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("exapmle.xls")

运行结果:
在这里插入图片描述
2、读取excel文件——xlrd的用法

  1. 基本用法——读取指定单元格的数据
	# 打开excel文件
	excel = xlrd.open_workbook("exapmle.xls")
	
	# 打开sheet表单
	sheet1 = excel.sheet_by_name("sheet1") #通过表单名打开表单
	# sheet1 = excel.sheet_by_index(0) #通过表单的序号打开表单,序号从0开始
	
	# 获取表单中单元格的值
	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)
  1. get_rows()——读取表单中的所有数据
	# 除此之外,还可以使用以下方法获取excel中的所有数据
	for i in sheet1.get_rows():#使用get_rows()方法,返回一个生成器
	    print(i)
运行结果如下图:

运行结果:
在这里插入图片描述
3. ncols和nrows——获取表单中数据的行数和列数

#获取列数
cols = sheet1.ncols

#获取行数
rows = sheet1.nrows

#输出结果
print(cols,rows)

输出结果:
在这里插入图片描述
注: 不管哪个操作,都要先打开相应表单才可以进行后续操作。

3、修改文件

# 导入模块
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
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值