📜  如何在 openpyxml 中使用 python 在 excel 中创建多张工作表 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:08:43.818000             🧑  作者: Mango

如何在 openpyxml 中使用 Python 在 Excel 中创建多张工作表

Python 是一种强大的编程语言,可以使用它来创建 Excel 文件。openpyxl 是一个用于操作 Excel 文档的 Python 库,可以轻松地创建、读取和修改 Excel 文件。在本文中,我们将介绍如何使用 openpyxl 和 Python 语言在 Excel 中创建多张工作表。

安装 openpyxl

在使用 openpyxl 之前,需要安装该库。可以使用 pip 来安装它:

pip install openpyxl
创建 Excel 文件

要创建 Excel 文件,首先需要创建一个工作簿(Workbook),并在其中添加一个或多个工作表(Worksheet) 。以下程序演示了如何在 Python 中创建一个包含两张工作表的 Excel 文件:

from openpyxl import Workbook

# 创建 Workbook 对象
wb = Workbook()

# 添加两张工作表
ws1 = wb.active
ws1.title = "Sheet1"
ws2 = wb.create_sheet(title="Sheet2")

# 将文件保存到磁盘
wb.save("example.xlsx")

在上面的程序中,我们首先导入 openpyxl 库并创建了一个 Workbook 对象。然后,我们使用 active 属性获取首张工作表,并将其命名为 "Sheet1" ;接着,我们使用 create_sheet 方法创建了第二张工作表。最后将该工作簿保存为名为 "example.xlsx" 的 Excel 文件。

在工作表中添加数据

创建了工作表后,我们可以使用一些方法将数据添加到每张工作表中。以下代码演示了如何向两张工作表中添加一些数据:

from openpyxl import Workbook

# 创建 Workbook 对象
wb = Workbook()

# 添加两张工作表,并向其中添加数据
ws1 = wb.active
ws1.title = "Sheet1"
ws1['A1'] = "Name"
ws1['B1'] = "Age"
ws1['A2'] = "Tom"
ws1['B2'] = 25

ws2 = wb.create_sheet(title="Sheet2")
ws2['A1'] = "City"
ws2['B1'] = "Country"
ws2['A2'] = "New York"
ws2['B2'] = "USA"

# 将文件保存到磁盘
wb.save("example.xlsx")

在上述代码中,我们在第一张工作表中添加了两列数据,姓名和年龄;在第二张工作表中添加了两列数据,城市和国家。我们可以使用类似于 ws1['A1'] = "Name" 的语法向指定单元格中添加数据。

从 Excel 文件中读取数据

读取 Excel 文件中的数据与写入数据相似。以下程序演示了如何从 "example.xlsx" 文件中读取第一张工作表中的数据:

from openpyxl import load_workbook

# 打开 Excel 文件
wb = load_workbook(filename = "example.xlsx")

# 获取第一张工作表和其中的数据
ws1 = wb['Sheet1']
name = ws1['A2'].value
age = ws1['B2'].value

# 输出结果
print("Name: " + name)
print("Age: " + str(age))

在上面的程序中,我们使用 load_workbook 方法打开了名为 "example.xlsx" 的 Excel 文件,并使用 ['Sheet1'] 这样的语法获取了其中的第一张工作表。然后我们使用语法 ws1['A2'].valuews1['B2'].value 获取了第一张工作表中的两列数据。需要注意的是,单个细胞数据是一个单独的对象,我们需要使用 .value 方法获取其实际值。

总结

以上便是如何使用 openpyxl 和 Python 在 Excel 中创建多张工作表的说明。使用 openpyxl 创建和操作 Excel 文件非常简单,而且可以使用 Python 的强大特性进行处理和管理。通过使用 openpyxl 和 Python,程序员可以轻松地实现 Excel 数据的读取和写入,从而大大提高工作效率。