点击上方蓝字Python猫,设为星标,第一时间接收优质文章
花下猫语:公众号最近新推出了一个“问答”功能,没有留言功能的公众号终于也有了新的互动方式!今天的问答放到了这段话的下方,今后主要会放在文章末尾,希望大家可以多给我留言哦~~(PS.手机后台无法操作,所以基本是在晚上再统一回复)
艾玛·沃森
大家好,在之前的十几篇办公自动化系列文章中,我们大多是以真实的案例需求来讲解Python如何进行自动化办公操作,并且多次使用到openpyxl来处理表格,今天我们就来详细的盘点Python操作Excel神器openpyxl的各种操作!
本文将以详细图表/代码的形式讲解如何对Excel进行读取、写入及样式调整,可以当成速查手册使用,随用随查,建议收藏!
openpyxl是一个非标准库,因此需要自行安装,安装过程并不困难,Windows/Mac用户均可以在命令行(CMD)/终端(Terminal)中使用pip安装
pip install openpyxl在使用这个模块之前我们需要对Excel表格结构有个比较细致的了解,见下图:简而言之,一个Excel工作簿workbook由一个或者多个工作表sheet组成,一个sheet可以看作是多个行row组成,也可以看作是多个列column组成,而每一行每一列都由多个单元格cell组成!
注意load_workbook只能打开已经存在的Excel,不能创建新的工作簿
如果只有一张工作表也可以用:
sheet = workbook.active这边提供两种方法,注意都需要以cell.value形式输出具体值
这里也有一个细节,Excel中每一列由字母确定,是字符型;每一行由一个数字确定,是整型。当然,上面的三种方法都是获取一堆表格,现在要输出每一个表格的值就需要遍历:
for cell in cells: print(cell.value)三种方法依然有自己的局限性,如果我需要特定范围的值,且懒得换算成字母数字坐标。例如我想要获取第2行至第5行、第1列至第3列的全部单元格。因此必须掌握第4种方法:
如果读取和写入Excel的路径相同则为对原文件进行修改,
如果读取和写入Excel的路径不同则为保存成新的文件
水平对齐:distributed, justify, center, left, fill, centerContinuous, right, general
垂直对齐:bottom, distributed, justify, center, top
边线样式:double, mediumDashDotDot, slantDashDot, dashDotDot, dotted, hair, mediumDashed, dashed, dashDot, thin, mediumDashDot, medium, thick
有了上面的基础知识之后我们就能更快速的与办公自动化需求结合使用啦!
优质文章,推荐阅读:
Python到底是强类型语言,还是弱类型语言?
一篇文章掌握 Python 内置 zip() 的全部内容
不使用 if-elif 语句,如何优雅地判断某个数字所属的等级?
聊聊 print 的前世今生
感谢创作者的好文