2019cWE小项目

Excel 神器 —— OpenPyXl

2020-05-02  本文已影响0人  天明豆豆

Excel 神器 —— OpenPyXl

原文转自:涛哥聊Python

以下文章来源于Python技术 ,作者派森酱

Python技术

Python技术

image

无论是日常办公还是编程,总是离不开 Excel,用来导入导出数据,记录数据,统计分析,画原型,甚至在日本有位老爷爷用 Excel 来创作绘画

虽然 Excel 功能强大,操作便利,但是有些场景下还是不太方便,例如 将大量数据导入到 Excel,将 Excel 中的数据读取到系统中,或者按照某种结构格式化下原有数据,批量处理大量 Excel 文档等,幸运的是,有很多 Python 库可以帮助我们用程序来控制 Excel,完成难以手工完成的任务,现在就来了解下吧

Python 下的 Excel 库

Python 中有大量的原生和第三方 Excel 操作包,各有所长,不过对于刚使用 Python 与 Excel 交互的同学来说,可能有点目不暇接,所以先简单梳理一下常见的一些 Excel 包

概括一下:

OpenPyXL

OpenPyXl 几乎可以实现所有的 Excel 功能,而且接口清晰,文档丰富,学习成本相对较低,今天就以 OpenPyXL 为例,了解下如何操作 Excel

安装

用 pip 安装

pip install openpyxl

安装成功后,可以跑通下面测试:

python -c "import openpyxl"

基本概念

小试牛刀

先来看跑个测试

from openpyxl import Workbook

需要注意的是:

常用功能

OpenPyXl 功能很多,从单元格处理到图表展示,涵盖了几乎全部的 Excel 功能,这里就一些常用的功能做展示,更多的用法可以参考 OpenPyXl 文档(文末参考里有链接)

创建和打开 Excel

小试牛刀部分看到了如何创建一个 Excel

如果要加载一个已存在的 Excel 文件,需要用 load_workbook 方法,给定文件路径,返回 workbook 对象:

from openpyxl import load_workbook

load_workbook 除了参数 filename外为还有一些有用的参数:

操作 sheet

from openpyxl import Workbook

操作单元格

单元格(cell)是 Excel 中存放数据的最小单元,就是图形界面中的一个个小格子

OpenPyXl 可以操作单个单元格,也可以批量操作单元格

单独操作

单独操作,即通过 Excel 单元格名称或者行列坐标获取单元格,进行操作

ws1 = wb.create_sheet("Mysheet")  #创建一个sheet

批量操作

需要一下子操作多个单元格时,可以用批量操作来提高效率

# 操作单列
# 所有行
ws.append((1,2,3))

合并单元格

# 合并

单元格格式

OpenPyXl 用6种类来设置单元格的样式

from openpyxl.styles import Font, PatternFill, Border, Side, Alignment, Protection

上面展示的是单个单元格格式的设置,也可以批量设置,有两种方式,一种是循环范围内的所有单元格,逐个设置,另一种是对整列或者整行设置:

font = Font(bold=True)

更多样式类的定义和参数,可参 OpenPyXl 文档

图表

图表是 Excel 中很重要的部分,作为数据可视化的高效工具,利用 OpenPyXl 可以用编程的方式,在 Excel 中制作图表,创建过程和直接在 Excel 中差不多,下面以柱状图和圆饼图为例做演示

柱状图

from openpyxl import Workbook
image

圆饼图

from openpyxl import Workbook
image

总结

今天以 OpenPyXl 库为例,了解了 Python 操作 Excel 的基本方法,限于篇幅,无法全面的清晰的介绍更多功能,期望通过这篇短文,激发起您多程序化操作 Excel 的兴趣,让让工作、学习更高效,就如那句名言一样:“ 人生苦短,我用 Python”

参考

OpenPyXl 文档 https://openpyxl.readthedocs.io
Excel 作画 https://zhuanlan.zhihu.com/p/34917620
https://www.jianshu.com/p/be1ed0c5218e
https://www.douban.com/note/706513912/
https://blog.csdn.net/weixin_41595432/article/details/79349995

上一篇 下一篇

猜你喜欢

热点阅读