Python杀死Excel?众多模块哪家强
大家可能可能会面临这个问题:
成堆的科学实验数据需要导入 Excel 进行分析
成堆的销售数据表格等待统计
成堆的商品数据等待分析
作为人生苦短的 Python 程序员,该如何优雅地操作 Excel?其实Python提供的操作Excel的库有7个之多,到底哪个更好使用更加方便呢?
首先让我们来整体把握下不同库的特点:
xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件。官方文档:http://xlrd.readthedocs.io/en/latest/
xlwt是一个用于将数据和格式化信息写入旧Excel文件的库(如.xls)。官方文档:https://xlwt.readthedocs.io/en/latest/
xlutils是一个处理Excel文件的库,依赖于xlrd和xlwt。它仅支持.xls文件的操作。官方文档:http://xlutils.readthedocs.io/en/latest/
xlwings 简单强大,使用方便,可替代VBA。xlwings可以支持.xls读,支持.xlsx文件读写。官方文档:http://docs.xlwings.org/en/stable/index.html
XlsxWriter 是一个用来写 .xlsx 文件格式的模块,但不能用来读取和修改 Excel 文件。官方文档:https://xlsxwriter.readthedocs.io/
openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。官方文档:https://openpyxl.readthedocs.io/en/stable/
pandas是一个进行数据处理和分析的强大模块,有时也可以用来自动化处理Excel,官方文档:http://pandas.pydata.org/
另外还有win32com,通过名字大家就知道离不开windows系统,该库存在于pywin32中,是一个读写和处理Excel文件的库。但是我的电脑是Mac,就不做展开了。
官方文档:http://pythonexcels.com/python-excel-mini-cookbook/
DataNitro呢?严格来说它是一个Excel 的插件,安装也需单独到官网下载。也是仅支持windows系统。
官方文档:https://datanitro.com/
具体内容大家也可以参看:http://www.python-excel.org
环境安装
安装
7个模块均为非标准库,因此都需要在命令行中 pip/pip3
进行安装
pip/pip3 install xlrdpip/pip3 install xlwtpip/pip3 install xlutilspip/pip3 install xlwingspip/pip3 install XlsxWriterpip/pip3 install openpyxlpip/pip3 install pandas
提示:
xlutils 仅支持 xls 文件,即2003以下版本;
xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,请再安装 pypiwin32 或者 pywin32 包;
模块导入
模块的导入跟以往导入其他模块一样,使用import进行导入,如果名字比较长还可以使用as起个别名。
import xlrdimport xlwtimport xlwings as xwimport xlsxwriterimport openpyxlimport pandas as pd
xlutils 模块是 xlrd和 xlwt之间的桥梁,最核心的作用是拷贝一份通过 xlrd
读取到内存中的 .xls
对象,然后再拷贝对象上通过 xlwt
修改 .xls
表格的内容。xlutils
可以将 xlrd
的 Book 对象复制转换为xlwt 的Workbook 对象。
具体使用时通常导入的是模块中的copy子模块:
xluimport xlutils.copy
文档操作
由于设计模式的不同,导致基本的新建文件、修改文件、保存文件等功能在不同的库中存在着一定差异,比如xlsxwriter并不支持打开或修改现有文件,xlwings不支持对新建文件的命名等等,但是分析发现xlwings和openpyxl是对excel操作支持最多的两个库。
特别要说明一下xlutils库,xlrd
、xlwt
、xlutils
各自的功能都有局限性,但三者互为补充,覆盖了Excel文件尤其是 .xls
文件的操作。xlwt
可以生成 .xls
文件,xlrd
可以读取已经存在的 .xls
文件,xlutils
连接 xlrd
和 xlwt
两个模块,使用户可以同时读写一个 .xls
文件。简单来说,xlrd
负责读、xlwt
负责写、xlutils
负责提供辅助和衔接
性能对比
对几个库做了最基本的写入和读取测试,分别使用不同库进行添加及读取 5000行 * 800列 数据操作,得到所用时间,重复操作取平均值。另外在不同的电脑配置,不同的环境下结果肯定会有出入,数据仅供参考。
openpyxl虽然操作Excel的功能强大,但读写性能过于糟糕,尤其是写大表时,会占用大量内存,开启read_only和write_only模式后对其性能有大幅提升,尤其是对读的性能提升很大,使其几乎不耗时。
pandas把Excel当作数据读写的容器,为其强大的数据分析服务,因此读写性能表现中规中矩,但其对Excel文件兼容性是最好的,支持读写.xls,.xlsx文件,且支持只读表中单一工作页。
同样支持此功能的库还有xlrd,但xlrd只支持读,并不支持写,且性能不突出,需要配合xlutils进行Excel操作。
xlsxwriter功能单一,一般用来创建.xlsx文件,写入性能中庸。
综合考虑,xlwings的表现最佳,正如其名,xlwings——Make Excel Fly!
通过以上分析,相信大家对几个库都有了简单的了解。你可根据自己的需求和生产环境,选择合适的 Python-Excel 模块
附上一部分常用代码:
xlwings基本代码
import xlwings as xw#连接到excel
workbook = xw.Book('你的excel文件的路径')#连接excel文件
#连接到指定单元格
data_range = workbook.sheets('Sheet1').range('A1')
#写入数据
data_range.value = ['a','b','c']
#保存
workbook.save()
xlsxwriter基本代码
import xlsxwriter as xw
#新建excel
workbook = xw.Workbook('你的excel文件的路径')
#新建工作薄
worksheet = workbook.add_worksheet()
#写入数据
worksheet.wirte('A1','a')
#关闭保存
workbook.close()
xlutils基本代码
import xlrd #读取数据
import xlwt #写入数据
import xlutils.copy #操作excel
# 通过xlrd读取数据#打开excel文件
workbook = xlrd.open_workbook('你的excel文件的路径')
#获取表单
worksheet = workbook.sheet_by_index(0)
#读取数据
data = worksheet.cell_value(0,0)# 通过xlwt写入数据
#新建excel
wb = xlwt.Workbook()
#添加工作薄
sh = wb.add_sheet('Sheet1')
#写入数据
sh.write(0,0,'abc')
#保存文件
wb.save('myexcel.xls')#打开excel文件
book = xlrd.open_workbook('你的excel文件的路径')
#复制一份
new_book = copy(book)
#拿到工作薄
worksheet = new_book.getsheet(0)
#写入数据
worksheet.write(0,0,'mydata')
#保存
new_book.save()
openpyxl基本代码
import openpyxl# 新建文件workbook = openpyxl.Workbook() # 写入文件sheet = workbook.activesheet['A1']='A1'# 保存文件 workbook.save('你的excel保存路径')
本文目的并不是要评出一个最好的库,仅是从不同角度对不同库进行对比,希望能够让大家了解各个库所擅长的工作。
只有充分了解不同工具的特点,才能够在不同的场景下灵活运用不同的方法来高效解决问题!
Python杀死Excel?众多模块哪家强相关推荐
- Fintech系列(三) -- python对excel操作模块汇总||推荐指数||用法示例
python对excel操作模块汇总||推荐指数||用法示例 Working with Excel Files in Python 总览 读写Excel的python第三方开源模块 Excel写操作插 ...
- python excel 模块 性能_【xlwings1】Python-Excel 模块哪家强
0. 前言 从网页爬下来的大量数据需要清洗? 成堆的科学实验数据需要导入 Excel 进行分析? 有成堆的表格等待统计? 作为人生苦短的 Python 程序员,该如何优雅地操作 Excel? 得益于前 ...
- python的excel库_Python-Excel 模块哪家强?
0. 前言 从网页爬下来的大量数据需要清洗? 成堆的科学实验数据需要导入 Excel 进行分析? 有成堆的表格等待统计? 作为人生苦短的 Python 程序员,该如何优雅地操作 Excel? 得益于前 ...
- pythonexcel模块哪个好_Python-Excel 模块哪家强?
0. 前言 从网页爬下来的大量数据需要清洗? 成堆的科学实验数据需要导入 Excel 进行分析? 有成堆的表格等待统计? 作为人生苦短的 Python 程序员,该如何优雅地操作 Excel? 得益于前 ...
- Python-Excel 模块哪家强 #华为云·寻找黑马程序员#
python操作excel 最原始的莫过于两位老牌黄金搭档xlrd xlwt了,针对二者的封装有如下模块: xlutils & xlrd & xlwt 为什么把这三个一起说? 首先,x ...
- Python操作excel常用模块汇总
#收集的python相关信息#可能是全网最完整的 Python 操作 Excel库总结! #https://zhuanlan.zhihu.com/p/353669230#:~:text=%E5%8F% ...
- python处理Excel——openpyxl模块
openpyxl模块 该模块是Python中处理Excel的模块(这个模块只能处理.xlsx的Excel,如果是其它格式,请先转换为.xlsx格式.).这个模块比起其它的处理Excel的模块,在使用上 ...
- python xlutils和openpyxl哪个好_Python-Excel 模块哪家强?
前言 从网页爬下来的大量数据需要excel清洗 成堆的科学实验数据需要导入excel进行分析 作为一名面向逼格的Python程序员 该如何合理而又优雅的选择生产力工具呢? 得益于辛勤劳作的python ...
- python操作excel之 模块 xlrd
xlrd是专门用来在python中读取微软execel的模块,可以自己直接下载安装,也可以通过包管理器安装. 官方资料: 下载地址:http://pypi.python.org/pypi/xlrd 官 ...
最新文章
- 如何编码和解码base64字符串?
- Log4j配置文件位置+Spring数据源配置文件位置
- 在Centos中yum安装和卸载软件的使用方法
- win10电脑插耳机没声音_电脑没有声音是什么原因 教您电脑突然没声音怎么解决...
- 阿里云朱照远:视频云2.0,更大规模、更智能、更清晰
- python tracer函数_Python流程控制常用工具和函数定义
- MediaCreationTool.bat操作手册
- cad通过钢筋大样生成钢筋明细表插件_易图(CAD插件For2016-2018)下载|易图(CAD插件For2016-2018)官方版下载_v18.3.1_9号软件下载...
- 安卓系统的电视机_再送出一款智能电视、电视盒子、安卓手机通用TV直播软件...
- android cos函数,Android三角函数
- 考研复试-数据库知识点速记
- TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)
- day 83 Vue学习三之vue组件
- IPMI用户名密码忘记了怎么处理?
- 洛谷 P3373 【模板】线段树 2
- myeclipse优化配置指南、myeclipse常用功能设置、 myeclipse快捷键
- python一键扣图_Python实例:一键批量抠图
- c语言屏幕输出函数相关题,C语言上机考试题目
- Xshell国内免费下载
- getchar()用法 与 getch()函数使用方法