
4.1 使用tablib模块

在Python程序中可使用第三方模块tablib将数据导出为不同的文件格式,包括Excel、JSON、HTML、Yaml、CSV和TSV等格式。在使用模块tablib之前,需要先通过如下命令安装tablib。

在接下来的内容中,将详细讲解使用tablib模块的知识。
4.1.1 基本用法
1.创建Dataset(数据集)
在tablib模块中,使用tablib.Dataset创建一个简单的数据集对象实例:

接下来就可以填充数据集对象和数据。
2.添加Rows(行)
若想收集一个简单的人名列表,需输入下面的代码。


在Python中可以通过下面的代码获取人名。

3.添加Headers(标题)
通过下面的代码可以在数据集中添加标题。

通过下面的代码获取数据集信息。

4.添加Columns(列)
在数据集中可以继续添加列,如下面的代码。

通过下面的代码获取数据集信息。

5.导入数据
在创建tablib.Dataset对象实例后,可以直接导入已经存在的数据集,下面是导入CSV文件数据的代码。

在tablib模块中一旦需要导入数据,只要具备适当的格式化程序导入窗口,就可以从各种不同的文件类型导入数据。
6.导出数据
Tablib模块的主要功能是将数据导出为不同类型的文件,例如下面的代码将我们前面创建的数据集导出为CSV文件格式。


通过下面的代码将数据导出为JSON文件格式。

通过下面的代码将数据导出为YAML文件格式。

通过下面的代码将数据导出为Excel文件格式。

4.1.2 操作数据集中的指定行和列
在下面的实例文件Tablib01.py中,演示了使用tablib模块操作数据集中的指定行和列的过程。
源码路径:daima\4\4-1\Tablib01.py

执行后输出:


4.1.3 删除并导出不同格式的数据
在下面的实例文件Tablib02.py中,演示了使用tablib模块删除数据集中指定数据,并将数据导出为不同文件格式的过程。
源码路径:daima\4\4-1\Tablib02.py

执行后输出:


4.1.4 生成一个Excel文件
在下面的实例文件Tablib03.py中,演示了将tablib数据集导出到新建Excel文件的过程。
源码路径:daima\4\4-1\Tablib03.py

执行后创建一个Excel文件excel.xls,里面填充的是数据集中的数据,如图4-1所示。

图4-1 创建的Excel文件
4.1.5 处理多个数据集
在现实应用中,有时需要在表格中处理多个数据集集合,如将多个数据集数据导到一个Excel文件中,这时可使用tablib模块中的Databook实现。如在下面的实例文件Tablib04.py中,不但演示了增加、删除数据集数据的方法,而且演示了将多个tablib数据集导出到Excel文件的过程。
源码路径:daima\4\4-1\Tablib04.py


执行后输出:


执行后创建Excel文件mydata.xls,其中保存了从数据集中导出的数据,如图4-2所示。

图4-2 Excel文件中的数据
4.1.6 使用标签过滤数据
在使用tablib数据集时,可将一个作为参数的标签添加到指定行。在后面的程序中可基于任意条件的数据通过这个标签筛选数据集。如在下面的实例文件Tablib05.py中,演示了使用标签过滤tablib数据集的过程。
源码路径:daima\4\4-1\Tablib05.py

执行后输出:

4.1.7 分离表格中的数据
当将tablib数据导出到某个格式的文件中时,有时需要将多种数据集对象进行分类。如在下面的实例文件Tablib06.py中,演示了将两组数据分离导入Excel文件的过程。
源码路径:daima\4\4-1\Tablib06.py


执行后会将Tablib分类别导入到Excel文件中,如图4-3所示。

图4-3 分离的数据