同学们,大家好!从现在起我们便开始了 python 办公自动化的学习之旅。本节课学习的内容是 Excel 的基本概念以及 Excel 文件的创建。

# 1.安装第三方库

为了能够使用 Python 对 Excel 文件进行操作,我们需要安装第三方库 openpyxl。

# 1.1 检查有没有安装第三方库

首先,检查有没有安装 openpyxl 库。在 Python 的终端或 IDE 里输入下面的命令:import openpyxl 如果没有报错,说明已经安装了 openpyxl。如果报如下错误: image.png 则说明没有安装 openpyxl。这时候,我们可以使用如下命令来安装第三方库 openpyxl。pip install openpyxl

# 2.Excel 的基本概念

相信不少同学在生活工作中都使用过 Excel。接下来我们就来了解一下Excel 的几个基本概念:

# 2.1 工作簿

一个 Excel 电子表格文档称为一个工作簿,一个工作簿保存在扩展名为 .xlsx 的文件中。

# 2.2 工作表

每个工作簿可以包含多个表(也称为工作表),用户当前查看的表(或关闭 Excel 前最后查看的表),称为活动表。

# 2.3 单元格

每个表都有一些列(地址是从 A 开始的字母)和一些行(地址是从 1 开始的数字)。在特定行和列的方格称为单元格。每个单元格都包含一个数字或文本值。单元格形成的网格和数据构成了表。

# 3.使用 Python 操作 Excel

在了解了 Excel 的基本概念后,我们来看如何使用 Python 进行 Excel 文件的操作。

# 3.1 工作簿的创建

# 工作簿的创建
from openpyxl import Workbook

wb = Workbook()
wb.save('test.xlsx')
1
2
3
4
5

在上面的代码中,我们首先导入 openpyxl 库,接着创建一个 Workbook 对象并取名保存即可。这样在当前目录下便生成了一个 Excel 文件。如下图所示: image.png

# 3.2 工作表的创建

讲完工作簿的创建后,我们来看下工作表的创建。

# 工作表的创建
from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')
1
2
3
4
5
6
7

在上面的代码中:

1.导入 `openpyxl` 库并创建一个 `Workbook` 对象 `wb`。
2.使用 `create_sheet` 方法创建工作表,在调用 `create_sheet` 方法时只需要传入工作表的名称即可。
1
2

由于在创建 Workbook 对象 wb 时已经默认创建了一个工作表 Sheet,所以在调用 create_sheet 创建 MySheet 工作表之后,工作簿中包含了两个工作表 Sheet 和 MySheet。如下图所示: image.png 上面在调用 create_sheet 方法创建工作表时,只传入了工作表的名称。还有另外一种调用 create_sheet 的方式,就是不但传入工作表的名称,而且传入工作表在工作簿中的位置。接着上面的代码,添加如下代码:

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')
1
2

上面的代码中,在调用 create_sheet 方法时,传入了工作表的名称和工作表在工作簿的位置。上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')
1
2
3
4
5
6
7
8
9

上述的代码执行之后,工作簿中的工作表的布局如下图所示: image.png 由于指定 MySheet2 工作表的位置为 0,所以 MySheet2 工作表是工作簿的第一个工作表。我们使用上面的方法再来添加一个工作表,接着上面的代码,添加如下代码:

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')
1
2

上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')
1
2
3
4
5
6
7
8
9
10
11
12

上述的代码执行之后,工作簿中的工作表的布局如下图所示: image.png 由于指定 MySheet3 的位置为 2,所以 MySheet3 为工作簿中的第三个工作表。

# 3.3 查看工作表的名字

工作表创建完成后,我们可以查看工作簿中的工作表,接上面的代码,添加如下代码:wb.sheetnames 上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')

wb.sheetnames
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3.4 改变工作表的名字

通过代码我们同样可以改变工作表的名字,接上面的代码,添加如下代码:

ws = wb['Sheet']
ws.title = 'MySheet0'
wb.save('test.xlsx')
wb.sheetnames
1
2
3
4

上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')

wb.sheetnames

ws = wb['Sheet']
ws.title = 'MySheet0'
wb.save('test.xlsx')
wb.sheetnames
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

在上面的代码中,首先获取工作表 Sheet,然后将其名字改为 MySheet0,最后进行工作簿的保存。执行完上述代码后,工作簿中工作表的情况如下图所示: image.png

# 3.5 获取活跃表

用户当前查看的表(或关闭 Excel 前最后查看的表),称为活动表。通过代码我们可以获取活跃表。接上面的代码,添加如下代码:

ws = wb.active
ws.title
1
2

上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')

wb.sheetnames

ws = wb['Sheet']
ws.title = 'MySheet0'
wb.save('test.xlsx')
wb.sheetnames

ws = wb.active
ws.title
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 3.6 删除工作表

我们不但可以添加、修改工作表,还可以删除工作表。接上面的代码,添加如下代码:wb.sheetnames 上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')

wb.sheetnames

ws = wb['Sheet']
ws.title = 'MySheet0'
wb.save('test.xlsx')
wb.sheetnames

ws = wb.active
ws.title

wb.sheetnames
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

在删除之前,我们首先查看当前工作簿中的工作表。如下图所示: image.png 继续添加如下代码:

del wb['MySheet2']
wb.save('test.xlsx')
1
2

上述代码添加后的完整代码为:

from openpyxl import Workbook

wb = Workbook()

wb.create_sheet('MySheet')
wb.save('test.xlsx')

wb.create_sheet('MySheet2', 0)
wb.save('test.xlsx')

wb.create_sheet('MySheet3', 2)
wb.save('test.xlsx')

wb.sheetnames

ws = wb['Sheet']
ws.title = 'MySheet0'
wb.save('test.xlsx')
wb.sheetnames

ws = wb.active
ws.title

wb.sheetnames

del wb['MySheet2']
wb.save('test.xlsx')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

在上面的代码中,使用 del 关键字来删除工作表,删除工作表 MySheet2 并保存之后,工作簿中的工作表如下图所示: image.png 可以看到工作表 MySheet2 已经被删除。

# 4.小结

image.png

# 5.练习题

# 5.1 创建一个 Excel 文档,并添加工作表。

# 5.2 删除工作簿中的工作表。

更新于: 12/29/2021, 8:12:19 AM