购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4 Excel与Python的整合环境

本节将介绍openpyxl包,使用openpyxl包可对Excel数据进行各类操作,达到自动化处理Excel数据的目的。

3.4.1 安装openpyxl包

使用pip工具、easy_install工具可以安装openpyxl包。Anaconda默认安装了openpyxl包,在编写代码时可直接使用。

如果正确安装了openpyxl包,在导入使用时不会报错,否则会出现“NameError:name'openpyxl'is not defined error”错误提示。

3.4.2 构建测试数据

Python中的Faker包可用于构建各种测试数据,在填充数据库、创建数据文档、数据压力测试等场景下都可以使用。读者可参考本书代码素材文件“3-11-faker-demo.ipynb”进行学习。

1.安装Faker包

对于官方版本的Python,可使用pip工具进行安装。

对于Anaconda,可在Anaconda Navigator中搜索Faker包然后安装,或是在Anaconda Powershell中使用conda工具安装。

2.使用Faker包

以下代码演示了Faker包的基础使用方法,Faker包中提供了各类数据的Provider,可用于生成各种不同的测试数据。

3.生成金融测试数据

介绍了Faker包的基础使用方法后,下面通过Faker包构建一份银行信用卡相关的测试数据,并写入Excel文件中。读者可参考本书代码素材文件“3-12-faker-data.ipynb”进行学习。

最终生成的Excel文件中的数据如图3-32所示,通过Faker、openxlpy包可以生成各类业务场景的测试数据,并可以将数据保存到Excel中,对于方案验证、测试有很大的帮助。

图3-32 通过Faker包构造测试数据

3.4.3 Excel文件读写

前文中介绍Faker包时,已经演示了使用openpyxl包向Excel文件写入数据的操作,本小节将进行更加详细的说明,读者可参考本书代码素材文件“3-13-openpyxl.ipynb”进行学习。

1.openpyxl类结构

Excel的基础操作流程是:新建或打开已有的工作簿→选择工作表→操作数据单元格。使用openpyxl处理Excel文件也是按这个流程对相关对象进行处理,表3-11所示为openpyxl包中的类和模块与对应的Excel对象的说明。

表3-11 openpyxl包中的类和模块与对应的Excel对象

2.Excel工作簿的操作

通过load_workbook函数读取Excel文件,返回Workbook类对象,然后通过Workbook对象创建和查看工作表。

(1)打开Excel工作簿查看现有工作表。

Workbook对象可调用remove_sheet方法删除工作表,remove_sheet方法中的参数需要为Worksheet对象,所有修改操作在调用save()方法后生效。

(2)使用create_sheet方法创建新的Excel工作表。

Workbook对象可调用create_sheet方法新建工作表,create_sheet方法中的title参数指定新建工作表的名称,index参数指定新建工作表的位置。

3.Excel中行和列的相关操作

在Excel中可以通过工作表区分不同的数据,使用openpyxl包中的工作表类Worksheet,可以对工作表中的行和列进行操作。

(1)定位查找工作表。

(2)对工作表中的行、列、数据单元格对象进行操作。

(3)向工作表中插入数据。

执行完对工作表的操作后,工作表的样式如图3-33所示。使用delete_rows、delete_cols方法可以删除工作表中的行和列。

图3-33 工作表操作演示

4.Excel中单元格的相关操作

Excel中单元格是最基本的数据单元,使用openpyxl包中的工作表类Worksheet可以对单元格进行操作。

(1)操作单元格中的数据。

(2)单元格格式的设置。

使用Excel时经常需要对单元格的格式进行设置,在Pythone中可通过openpyxl包中styles包中的样式类对单元格格式进行设置。

图3-34所示为设置单元格格式后的效果,通过styles包中的样式类设置单元格格式可以达到和手动设置Excel单元格格式一样的效果。

图3-34 设置单元格格式后的效果

3.4.4 自动化处理

学习了openpyxl包的相关知识后,接下来介绍利用Python自动化处理Excel的方法。假设有以下场景:有一个商品供应商,需要将各门店手动记录的Excel数据进行汇总。如果每次都通过人工手动合并数据会造成人力资源的浪费,也容易出错。通过以下代码可以自动完成合并3个门店的Excel数据的工作。读者可参考本书代码素材文件“3-14-openpyxl_auto.ipynb”进行学习。

(1)Excel数据样式。

3家门店的Excel数据文件名分别为“门店1.xlsx”“门店2.xlsx”“门店3.xlsx”,数据示例如图3-35所示。

图3-35 Excel数据示例

(2)合并3个文件的内容。

将上面的代码保存到文件中,然后配置操作系统的调度任务进行调用,即可实现自动化的数据处理。 vW5DHPi721UJrJGAbGsUi4egzOhe9ANYlsKvHAA/6AgJ8H/bmkVO/vQKi0h76h+1

点击中间区域
呼出菜单
上一章
目录
下一章
×