excel

欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、面试集锦、学习资料等。

前言

成堆的数据如何导入Excel进行分析?

大量的表格等待统计?

作为人生苦短的Python程序员,改如何优雅地操作Excel?

得益于各位开源大佬的贡献,Python处理Excel拥有众多的库,使用它们我们就直接能批量处理Excel标的。使用的比较多的有:xlwings

openpyxl

pandas

win32com

xlsxwriter

DataNitro

xlutils

环境配置:

再好的库,也需要在正确的Python版本与环境中才能运行

各个版本对应的环境

上图标题栏是对应的环境,左侧是包名。各位可以参考一下,记得别安装错了。

xlutils 仅支持 xls 文件,即2003以下版本;

openpyxl 主要是用于助理2010版本。即使文件库中没有安装office也能自动生成excel表格。

win32com 与 DataNitro 仅支持 windows 系统;

xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,

请使用 pip install pywin32指令安装win32模块

win32com 不是独立的扩展库,而是集成在其他库中,安装 pypiwin32 或者 pywin32 包即可使用;

DataNitro 是 Excel 的插件,安装需到官网下载。

文档操作:

虽然大家都是操作 Excel,但即使最基本的新建文件、修改文件、保存文件等功能,在不同的库中也存在差异。比如 xlsxwriter 并不支持打开或修改现有文件,xlwings 不支持对新建文件的命名,DataNitro 作为 Excel 插件需依托于软件本身,pandas 新建文档需要依赖其他库等等。

支持的功能

上图是各个库包支持的功能,在编码之前记得看一下你需要的功能是否支持。

基本功能

由于设计目的不同,每个模块通常着重于某一方面功能,各有所长。

xlwings

可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。

openpyxl

简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。

pandas

数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。

win32com

从命名上就可以看出,这是一个处理 windows 应用的扩展,Excel 只是该库能实现的一小部分功能。该库还支持 office 的众多操作。需要注意的是,该库不单独存在,可通过安装 pypiwin32 或者 pywin32 获取。

xlsxwriter

拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。

DataNitro

作为插件内嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 脚本。既然被称为 Excel 中的 python,协同其他 python 库亦是小事一桩。然而,这是付费插件...

xlutils

基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特点中规中矩,比较大的缺点是仅支持 xls 文件。

性能

我们对几个库做了最基本的写入和读取测试,分别使用不同库进行添加及读取 1000行 * 700列 数据操作,得到所用时间,重复操作取平均值。另外在不同的电脑配置,不同的环境下结果肯定会有出入,数据仅供参考。

读写时间

注:xlutils 最多只能写入 256 列,即 1000*256,用时3.8秒,表现不错;

DataNitro 与 xlsxwriter 不能打开 Excel 文件。

小结

通过以上的分析,相信大家对几个库都有了简单的了解。在编写文章的过程中,笔者也在思考各个库最适合的应用场景。

不想使用 GUI 而又希望赋予 Excel 更多的功能,openpyxl 与 xlsxwriter,你可二者选其一;

需要进行科学计算,处理大量数据,建议 pandas+xlsxwriter 或者 pandas+openpyxl;

想要写 Excel 脚本,会 Python 但不会 VBA 的同学,可考虑 xlwings 或 DataNitro;

至于 win32com,不管是功能还是性能都很强大,有 windows 编程经验的同学可以使用。不过它相当于是 windows COM 的封装,自身并没有很完善的文档,新手使用起来略有些痛苦。

你可根据自己的需求和生产环境,选择合适的 Python-Excel 模块。

代码示例

最后,附上一些演示代码,大家可自行体会下不同模块的使用。xlwings基本代码

xlwings基本代码xlsxwriter基本代码

xlsxwriter基本代码xlutils基本代码

import xlrd #读取数据import xlwt #写入数据import xlutils #操作excel#----xlrd库#打开excel文件workbook = xlrd.open_workbook('myexcel.xls')#获取表单worksheet = workbook.sheet_by_index(0)#读取数据data = worksheet.cell_value(0,0)#----xlwt库#新建excelwb = xlwt.Workbook#添加工作薄sh = wb.add_sheet(sheetname='Sheet1')#写入数据sh.write(0,0,'data')#保存文件wb.save('myexcel.xls')#----xlutils库#打开excel文件book = xlrd.open_workbook('myexcel.xls')#复制一份new_book = xlutils.copy(book)#拿到工作薄worksheet = new_book.getsheet(0)#写入数据worksheet.write(0,0,'new data')#保存new_book.save()win32com基本代码import win32com.client as wc#启动Excel应用excel_app = wc.Dispatch('Excel.Application')#连接excelworkbook = excel_app.Workbooks.Open(r'e:/myexcel.xlsx' )#写入数据workbook.Worksheets('Sheet1').Cells(1,1).Value = 'data'#关闭并保存workbook.SaveAs('newexcel.xlsx')excel_app.Application.Quitopenpyxl基本代码

import openpyxl # 新建文件 workbook = openpyxl.Workbook # 写入文件 sheet = workbook.activesheet['A1']='data' # 保存文件 workbook.save('test.xlsx')DataNitro基本代码#单一单元格赋值Cell('A1').value = 'data'#单元区域赋值CellRange('A1:B2').value = 'data'

介绍就到此结束

python设置excel套打_用强大的Python处理海量的Excel,工作从未如此简单相关推荐

  1. python设置程序最大内存_限制你的Python程序所能使用的最大内存

    如果程序开发不当,可能会出现占用过多内存的情况.特别是在Docker里面,如果Python程序占用太多内存,可能会导致Docker容器死掉. 为了限制Python程序所能使用的最大内存,我们可以使用P ...

  2. 怎么用python处理excel文件-用python处理excel文件有多轻松?工作从未如此简单

    最近需要频繁读写 excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单.本文对 o ...

  3. python高效办公_用强大的Python高效处理海量Excel,告别耗时加班!

    原标题:用强大的Python高效处理海量Excel,告别耗时加班! 版权声明:本文为CSDN博主「CGS_______」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本 ...

  4. python 依据某几列累加求和_用强大的Python高效处理海量Excel,告别耗时加班

    版权声明:本文为CSDN博主「CGS_______」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/CGS ...

  5. python相比于excel的优势_都在讨论Python能否取代Excel,那有没有人想到它

    最近看到一个话题,有人问Python到底能不能取代Excel,但是我觉得抛开使用场景的比较都是耍流氓,Photoshop是否有朝一日取代美图秀秀呢?手机是否有朝一日取代台式机?微信是否有朝一日取代电话 ...

  6. python处理excel表格入门_零基础使用Python读写处理Excel表格

    引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作. 安装库 Python环境 首先当然是配环境,不过选Python的一个重 ...

  7. python 的库如何开发_一篇文章入门Python生态系统

    译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍.文 ...

  8. python科学计算教程视频_【P14】Python科学计算与图形渲染库视频课程视频教程 it教程...

    Python视频教程名称: Python科学计算与图形渲染库视频课程视频教程 Python视频教程 [IT视频教程网-www.itspjc.com] it教程 6 T6 ^9 L+ E4 C, }0 ...

  9. python可以引流吗_你都用 Python 来做什么?

    不是搞科研的,工作用Java开发的,Python一般用来做一些辅助性的运维.分析.自动化工作. 个人生活自动化win-lockfetch 用Win 10的同学都知道Win10有一套自动更新的锁屏壁纸. ...

最新文章

  1. 2003網域升級到2008網域以及遷移DNS
  2. C# 集合交、并、差、去重,对象集合交并差
  3. 爬取广州所有停车场数据(Python)
  4. 火箭技术术语_多物理场仿真优化火箭发动机增材制造工艺
  5. JavaScript实现向OL列表内动态添加LI元素的方法
  6. 分类问题的label为啥必须是 one hot 形式?
  7. NBU备份数据库时的ORA-27211错误分析解决
  8. 关于如何把用手机查看原型
  9. 东芝打印机共享怎么设置_东芝e-studio181打印机怎么设置网络打印机
  10. Node-RED使用指南:7:配置与设定总结:其他配置
  11. Maven配置pom引入本地依赖
  12. SEE MIPS RUN 第六章 内存管理与TLB
  13. 微信小程序canvas把正方形图片绘制成圆形
  14. 基于颜色特征的图像检索(一)
  15. JAVA 之POI导入批量新增、批量检查、日志记录、失败原因、失败条数、数据库映射
  16. 快速排序的三种方式以及快排的优化
  17. 应对机器学习中类不平衡的10种技巧
  18. 生成全排列算法的实现(Johnson-Trotter)
  19. 统一软件开发过程(RUP)分析
  20. 类模板中的友元,友元类

热门文章

  1. EZEMC测试软件_emc仿真软件下载-emc仿真软件(测试电磁兼容性) 15.0.1 中文免费版[百度网盘资源] - 河东下载站...
  2. 【CVPR 2018】Paper List
  3. 用计算机唱下山歌词,太阳落下山秋虫儿闹声喧是什么歌_太阳落下山秋虫儿闹声喧歌名、歌词、歌手介绍_游戏吧...
  4. XMU 1056 瞌睡 vs 听课 【动态规划】
  5. 信息过载的时代,到底哪些知识值得我们去付费?
  6. 将应用程序添加到鼠标右键
  7. 第一章 Node简介
  8. 强化学习Q-leaning算法之走迷宫
  9. excel导入plsql解决乱码问题
  10. android:multiprocess