Python自动化办公_openpyxl库与模块、工作簿、工作表、单元格、样式和图形设置

一、openpyxl库与模块

openpyxl

openpyxl是Eric Gazoni和Charlie Clark联合开发,用来处理Excel电子表格的Python第三方库。因为它是第三方库,所以需要根据系统环境,在本地使用正确的命令来安装这个库,命令如下所示:

Windows系统:pip install openpyxl
MacOS系统:pip3 install openpyxl

openpyxl库可以处理Excel2010以后的电子表格格式,包括:xlsx/xlsm/xltx/xltm

from…import…

import直接导入openpyxl库的话,每次使用我们都要带openpyxl.

因此我们使用 from  库/模块 import 函数/方法/类/变量

且可以引入多个名字:from 库/模块 import 函数1, 类1

与直接import对比:

二、工作簿

1、获取工作簿对象

(1)使用函数load_workbook

语法:load_workbook(filename)

参数filename代表了工作簿的路径,即.xlsx文件的路径

(2)类Workbook

语法:Workbook()

使用以上两种方法时,输出结果中显示<openpyxl.workbook.workbook.Workbook object at xxxxxxxx>,证明工作簿对象已经被成功创建

2、工作簿对象的基本操作

(1)保存

前面使用Workbook:工作簿对象.save(filename),参数filename表示新工作簿的文件路径

前面使用load_workbook:也可以使用方法save(filename)

如果参数filename不变,即保存在原有路径,相当于修改原文件;若参数filename变化,即保存在新的路径,相当于另存为新的文件。

总结:

(2)获取到工作簿中活动的工作表对象

active

语法:工作簿对象.active

3、总结

三、工作表

工作表就是工作簿中,位于下方的标签。

现实中的工作表,在openpyxl中对应着工作表对象(Worksheet对象)

工作簿对象(Workbook)和工作表对象(Worksheet):

1、获取工作表

(1)active:获取活动的工作表

语法:工作簿对象.active

通常情况下,活动工作表是指当前正在操作的工作表,打开一个.xlsx文件后,默认显示的工作表即为活动工作表

(2)按表名取表

如果我们已知工作表的名称,就可以以表名为索引,用工作簿对象['表名']的方式取到指定的工作表对象。

(3)比较

2、工作表对象的基本操作

(1)获取单行或单列

在Excel表格中,使用数字表示行数,用英文字母表示列名

在openpyxl中,我们可以通过工作表对象[行数]工作表对象['列名']的方式获取到一个元组,这个元组中包含了指定行或列中的所有数据

(2)获取多行数据:iter_rows()

语法:

参数min_rowmax_row分别表示最小行索引和最大行索引,最小行索引的值默认为1,最大行索引的值默认为表格中有数据的最下面一行的行数;

参数min_colmax_col分别表示最小列索引和最大列索引,最小列索引的值默认为1,最大列索引的值默认为表格中有数据的最右面一列的列数;

参数values_only决定是否返回单元格的值,如果为True则返回单元格的值,如果为False则返回单元格对象。通常情况下,只读数据时,需要将该参数设置为True,要写入数据时,保持其为默认的False就好。

工作表对象的方法iter_rows()会返回一个可迭代对象,该对象中有n个元组,n为参数中指定的行数,每一个元组都代表了表格中的一行。

因此,通常情况下,iter_rows()会和for循环结合使用,从而使得我们取出其返回的可迭代对象中的每一个元组,即表格中指定范围内的每一行数据。

如果指定的行中没有数据,就会返回一个空的元组  (None,None)

(3)添加数据:append()

语法:工作表对象.append(列表/元组)

使用append()添加完数据后,如果想要在本地的Excel文件中看到添加后的数据,就一定要将工作簿保存下来,即使用工作簿对象的方法save()

3、总结

四、单元格

单元格对象代表工作表中的一个单元格

1、获取单元格对象

(1)通过for row in 工作表对象.iter_rows()来获取指定范围的行,当参数values_only为默认的False时,我们得到的row就是一个个由单元格对象组成的元组,可以通过索引或者for循环遍历的方式来获取单独的单元格对象

一句话总结下第一种方式:通过iter_rows()来获取指定范围的行,再通过索引从行中取出单元格对象

(2)for cell in 工作表对象[行数]
   for cell in 工作表对象['列名']

一句话总结下第二种方式:通过行数或者列名来指定具体的行或列,然后通过for循环遍历获取指定行或列中的每一个单元格对象

(3)工作表对象['单元格坐标']

一句话总结下获取单元格对象的第三种方式:通过单元格坐标来指定具体的单元格,从而获取到对应的单元格对象

刚才的代码运行结果,都是输出了单元格对象,但是单元格内的具体数据并没有显示出来。因此,如下:

2、单元格对象的基本操作

借助单元格对象的属性value,我们就可以得到具体的数据;同时,我们也可以通过这个属性给单元格对象赋值(修改单元格的值或给单元格添加值)

例:

3、总结

五、样式和图形设置(略)

六、总结

思维导图: 

重难点:

 


版权声明:本文为weixin_49657263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。