【全民Python】Python数据处理之Excel数据xlrd xlwt xlutils模块运用
创始人
2025-06-01 00:52:13
0

目录

一.前言

二.xlrd xlwt xlutils库的安装

三.Excel的读写改

1.创建Excel表格xls

2.读取Excel表格

3.修改表格


一.前言

数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。因此用 Python 进行数据处理时,很容易会和 Excel 打起交道。得益于前人的辛勤劳作,Python 处理 Excel 已有很多现成的轮子,比如 xlrd & xlwt & xlutils 、 XlsxWriter 、 OpenPyXL ,而在 Windows 平台上可以直接调用 Microsoft Excel 的开放接口,这些都是比较常用的工具,还有其他一些优秀的工具这里就不一一介绍,接下来我们通过一个表格展示各工具之间的特点:

类型xlrd&xlwt&xlutilsXlsxWriterOpenPyXLExcel开放接口
读取支持不支持支持支持
写入支持支持支持支持
修改支持不支持支持支持
xls支持不支持不支持支持
xlsx高版本支持支持支持支持
大文件不支持支持支持不支持
效率超慢
功能较弱强大一般超强大

以上可以根据需求不同,选择合适的工具,现在为大家主要介绍下最常用的 xlrd & xlwt & xlutils 系列工具的使用。

二.xlrd xlwt xlutils库的安装

  • xlrd:用于读取 Excel 文件;

  • xlwt:用于写入 Excel 文件;

  • xlutils:用于操作 Excel 文件的实用工具,比如复制、分割、筛选等;

安装比较简单,直接用 pip 工具安装三个库即可,安装命令如下:

$ pip3 install xlrd xlwt xlutils

三.Excel的读写改

1.创建Excel表格xls

#region 创建Xls表格对象import xlwt
wb= xlwt.Workbook() #创建xls文件对象#新增两个表单页
sh1 = wb.add_sheet("成绩")
sh2 = wb.add_sheet("总结")#然后根据位置添加数据,第一个参数是行,第二个参数是列
sh1.write(0,0,'姓名')
sh1.write(0,1,'成绩')
sh1.write(1,0,'张三')
sh1.write(1,1,90)
sh1.write(2,0,'李四')
sh1.write(2,1,96)
sh1.write(3,0,'幻世界')
sh1.write(3,1,100)sh2.write(0,0,'总分')
sh2.write(0,1,195)wb.save('./Config/成绩单.xls')
#endregion

2.读取Excel表格

#region 读取Excel表格import xlrdwb= xlrd.open_workbook('./Config/成绩单.xls')
print('sheet数量:', wb.nsheets, wb.sheet_names()[0],wb.sheet_names()[1])# 根据 sheet 索引获取内容
sh1 = wb.sheet_by_index(0)
print('%s 表:%d 行  %d 列'%  (sh1.name,sh1.nrows,sh1.ncols) )
# 或者
#也可根据 sheet 名称获取内容
sh1 = wb.sheet_by_name('成绩')
print('%s 表:%d 行  %d 列'%  (sh1.name,sh1.nrows,sh1.ncols) )# 获取并打印某个单元格的值
print( "第一行第二列的值为:", sh1.cell_value(0, 1))
# 获取整行或整列的值
rows = sh1.row_values(0) # 获取第一行内容
cols = sh1.col_values(1) # 获取第二列内容
# 打印获取的行列值
print( "第一行的值为:", rows)
print( "第二列的值为:", cols)
# 获取单元格内容的数据类型
print( "第二行第一列的值类型为:", sh1.cell(1, 0).ctype)# 遍历所有表单内容
for sh in wb.sheets():for r in range(sh.nrows):# 输出指定行print( sh.row(r))
#endregion#region 修改Excel
sheet数量: 2 成绩 总结
成绩 表:4 行  2 列
成绩 表:4 行  2 列
第一行第二列的值为: 成绩
第一行的值为: ['姓名', '成绩']
第二列的值为: ['成绩', 90.0, 96.0, 100.0]
第二行第一列的值类型为: 1
[text:'姓名', text:'成绩']
[text:'张三', number:90.0]
[text:'李四', number:96.0]
[text:'幻世界', number:100.0]
[text:'总分', number:195.0]

 单元格子 返回的类型数值对应下面类型

数值类型说明
0empty
1string字符串
2number数字
3date日期
4boolean布尔值
5error错误

3.修改表格

#region 修改Excel
import xlrd
from xlutils.copy import copy#打开excel文件
wb= xlrd.open_workbook('Config\成绩单.xls')
nwb= copy(wb)#选第一个表
sh1 =nwb.get_sheet(0)
#添加新数据
sh1.write(3,0,'shj')
sh1.write(3,1,92)sh2 =nwb.get_sheet(1)
sh2.write(1,0,1000)
nwb.save('Config\成绩单.xls')
#endregion

4.修改表格内格式

#region 格式转变
import xlwt# 设置写出格式字体红色加粗
styleBR = xlwt.easyxf('font: name Times New Roman, color-index red, bold on')
# 设置数字型格式为小数点后保留两位
styleNum = xlwt.easyxf(num_format_str='#,##0.00')
# 设置日期型格式显示为YYYY-MM-DD
styleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD')# 创建 xls 文件对象
wb = xlwt.Workbook()# 新增两个表单页
sh1 = wb.add_sheet('成绩')
sh2 = wb.add_sheet('汇总')
# 然后按照位置来添加数据,第一个参数是行,第二个参数是列
sh1.write(0, 0, '姓名', styleBR)   # 设置表头字体为红色加粗
sh1.write(0, 1, '日期', styleBR)   # 设置表头字体为红色加粗
sh1.write(0, 2, '成绩', styleBR)   # 设置表头字体为红色加粗
# 插入数据
sh1.write(1, 0, '张三',)
sh1.write(1, 1, '2019-01-01', styleDate)
sh1.write(1, 2, 88, styleNum)
sh1.write(2, 0, '李四')
sh1.write(2, 1, '2019-02-02')
sh1.write(2, 2, 99.5, styleNum)# 设置单元格内容居中的格式
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_CENTER
style = xlwt.XFStyle()
style.alignment = alignment
# 合并A4,B4单元格,并将内容设置为居中
sh1.write_merge(3, 3, 0, 1, '总分', style)# 通过公式,计算C2+C3单元格的和
sh1.write(3, 2, xlwt.Formula("C2+C3"))# 对 sheet2 写入数据
sh2.write(0, 0, '总分', styleBR)
sh2.write(1, 0, 187.5)
# 最后保存文件即可
wb.save('./Config/成绩单1.xls')
#endregion

相关内容

热门资讯

“遐想”造句 51、走过深秋,冬天又将如约而至,心里不由有了一种向往的喜悦。或许“瑞雪兆丰年”的预言应证着自已人生...
“闭月羞花”造句 1、善良,不是容颜的闭月羞花,不是举止的温文尔雅,不是财富的腰缠万贯;更不是权势的叱咤风云。善良,是...
“亏本”造句 51、 当蚕农都在担心当年养蚕要亏本时,蒋建明仍然按每公斤18元的保护价收购蚕茧,保护了养蚕户的利益...
用从容不迫进行造句 用从容不迫进行造句  1、他拥有的胆识是一般人没有的。他时时刻刻都有可能会被发现,但他仍旧从容不迫地...
“难乎其难”造句 1、通货紧缩使美国人卸掉沉重的债务包袱变得难乎其难。2、约拿传道的情况也实在难乎其难。3、一个一直被...
“不要让”造句 51、 不要让任何人告诉你要成为怎样的人。做与众不同的人。追随自己的感觉。52、 树立人人珍惜水,人...
振聋发聩造句-成语造句 振聋发聩造句-成语造句  1、由于门开着,机器的噪音几乎振聋发聩。  2、这个炮垒的大炮接连不断地射...
耳提面命的意思和造句 耳提面命的意思和造句  耳提面命是指不但当面告诉他;而且揪着他的耳朵向他讲。形容严厉而又恳切的教导。...
求助的造句 求助的造句  求助拼音  【注音】: qiu zhu  求助解释  【意思】:请求援助。  求助造句...
不假思索怎么造句 不假思索怎么造句  每个人都用过不假思索造句,下面就由小编为大家整理不假思索怎么造句的内容,欢迎大家...
用成语可歌可泣造句 用成语可歌可泣造句  1、男二号人狼坚决捍卫自己的爱情,誓死保护女主角的精神可歌可泣!  2、全国广...
连…也…造句   1、他连最简单的题也做不出来。    2、我长途跋涉,连走路的力气也没有了。    3、他心情不...
万象更新解释造句   遣词造句不仅是语感培养的重要策略,同时也是写作基础。所以同学们平时要积累并要多做一些练习。以下小...
“字幕”造句 101、2014年12月20日,人人影视字幕站宣称正式关闭。102、近日,人人影视字幕站发布微博称,...
细腻的解释及造句 细腻的解释及造句  细腻拼音  【注音】: xi ni  细腻解释  【意思】:(1)精细光滑。(2...
夙夜匪懈造句   夙夜匪懈造句  1、他为了参加此次考试,半年来夙夜匪懈,拚命苦读,如今终于如愿以偿,人人称羡。 ...
亡羊补牢造句 亡羊补牢造句汇集  亡羊补牢,并非为了弥补以往的损失,而是为了减少或杜绝以后再发生类似的状况。下面是...
用一如既往怎么造句   一如既往解释:一:完全;既往:从前,已往。指态度没有变化,完全象从前一样。下面是小编为大家收集整...
师恩难忘 师恩难忘【教学要求】1.正确、流利、有感情地朗读课文。2.学会本课6个生字,理解由生字组成的词语。会...
变成了造句 变成了造句大全  造句,动词词语,是指用词语组织句子。今亦以指初等学校语文练习内容之一。下面是我整理...