2021-07-21

python输出excel的库

可以操作Excel文件的python库对比

一、xlwt/xlrd库

Python xlwt (write)只能向Excel写入内容
Python xlrd (read)只能从Excel读取 内容
不足:只有两个库同时安装才能完成对excel文件的读写操作
只能操作xls后缀的excel文件,而且对于已有的Excel文件,想要追加或者修改,这两个库则没有办法完成
(别怪我无情,是你out了,而且我也不会用这两个库@ _ @)

二、xlutils

Python xlutils: 对 .xls 读、写操作的整合
xlutils库依赖于xlrd和xlwt两个库的。
(拜拜)

三、xlwings库

Python xlwings 读取 写入 还能修改已存在的Exce文件l
xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改
可以和matplotlib以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。
可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
(听说挺牛逼的,我没用过¥_¥)

四、openpyxl库

Python openpyxl 读取 写入 还能修改已存在的Exce文件l
注意,openpyxl 只能操作 .xlsx,不能操作 .xls
下面进行常用功能介绍

创建excel文件及工作表
from openpyxl import Workbook

wb = Workbook() # 创建一个excel文件
sheet = wb.active # 创建工作表,默认名称为Sheet(不会改名字)
# sheet.title = "默认sheet" # 现学的改名方法
sht1 = wb.creat_sheet('看我看我') # 创建新的工作表,并且重命名为(看我看我)

# 删除工作表的方法,自己去试,试试就逝世
# s = wb['看我看我']
# wb.remove_sheet(s)

向Excel中写入内容

sht1与sheet的操作方式一毛一样,下面以sheet为例操作
请添加图片描述

# 方法一
sheet['A1'] = 1
sheet['A2'] = 'awsl'
sheet['B3'] = '么挨老子'
sheet['A1'] = 11 # 我干掉了上任,但我不说,哎,就是玩~

# 方法二
# cell(row,column,value)
sheet.cell(4,5,6) # 向第四行第五列写入数字6
sheet.cell(4,5,'我干掉了上一任') # 我也干掉了上任

# 方法三
a = [1,2,3] # 列表,也可以是元组tuple,个人习惯列表(c语言叫数组)
sheet.append(a)  # 追加到最后一行,append()内只能放list或tuple类型的数据,不然会报错
# rows = (
#     (88, 46, 57),
#     (89, 38, 12),
#     (23, 59, 78),
#     (56, 21, 98),
#     (24, 18, 43),
#     (34, 15, 67)
# )
rows = [
    [88, 46, 57],
    [89, 38, 12],
    [23, 59, 78],
    [56, 21, 98],
    [24, 18, 43],
    [34, 15, 67]
]
for row in rows:
    sheet.append(row) # 一行一行追加
# 试过了不能直接sheet.append(rows)# _ #,
# 记得保存,不然打工
保存内容
wb.save("./dazhongdianping.xlsx") # 保存,地址自选
# 注意:每次写完都要保存,不然就是‘打工仔’。如果保存路径中excel文件已存在,会被覆盖(干坏事不吱声的那种哦,切记)
读取并修改已存在的excel文件
from openpyxl import load_workbook

wb = load_workbook("./dazhongdianping.xlsx") # 加载excel文件
sheet = wb[Sheet]   # 选择不同的表单
b = [1,2,3,4,5]
sheet.append(b)  # 在excel最后另起一行追加,不会覆盖原有内容,这个最常用
# 当然其他的写入方法在这里也能用
wb.save("./dazhongdianping.xlsx") # 改完记得保存,地址自选,地址与打开时一样表示修改该excel文件,地址不一样表示另存为
其他功能还在学习过程中……

五、pandas库

据说比上面四个都牛逼,而且是python做数据分析,数据可视化反面时最常用的库,操作excel只是其中一部分功能,非常强大。如果你想在数据分析与可视化方面搞一搞,就直接学这个吧。
如果只操作excel,推荐openpyxl,因为我再时只操作excel,所以选择了openpyxl
我安装了pandas,但没用,就是玩…

请添加图片描述
请添加图片描述
好吧,既然你偏要看,那就看吧
请添加图片描述

熟悉excel文件格式,便于python库的选择

在介绍库之前,先来介绍Excel两种格式Xlsx与Xls的优劣
注意:Microsoft Office Excel 2003及之前版本默认保存格式为xls,2007及之后的版本默认保存格式为xlsx。

xlsx文件比xls文件更小

同样一个文件,分别保存为两种格式,会发现xlsx文件更小,甚至只有xls文件的十分之一大小。
两者大小如此悬殊的原因,是因为它们采用了不同的文档核心结构。xls采用的是特有的二进制复合文档类型结构,xlsx采用的是XML格式结构。XML文件格式被设计出来的目的就是传输和存储数据,因此对数据有良好的压缩率。
由于xlsx文件更小,在电脑上处理数据时,速度也会更快。

xls格式有行数、列数限制

xls格式的数据上限是256列、65536行,而xlsx则没有这个限制。
当数据较多,保存为xls格式时,往往会有这样的错误提示

xlsx支持最新Excel功能

Excel的新功能,例如三维地图、迷你图等只有在xlsx格式表格中才能实现,而xls文件中无法使用。

总结

xls格式除了兼容性好(因为Excel软件支持向下兼容),其他方面差xlsx太多了,所以果断选择可以操作xlsx的库,当然两者能同时操作更好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值