python中openpyxl库用法详解

Python中的openpyxl库是一个功能强大的库,它允许我们对Excel文件进行读写操作。无论是读取已存在的Excel文件,还是创建新的Excel文件,都可以方便地使用openpyxl库来实现。

1. 安装openpyxl库

要使用openpyxl库,首先需要安装它。可以使用pip来进行安装,打开命令行窗口,运行以下命令:

pip install openpyxl

安装完成后,就可以在Python程序中导入openpyxl库来使用了。

2. 打开Excel文件

我们可以使用openpyxl库的"load_workbook"函数来打开一个Excel文件,指定文件名作为参数即可。下面是一个示例代码:

from openpyxl import load_workbook

wb = load_workbook('example.xlsx')

上述代码将打开一个名为"example.xlsx"的Excel文件,并将其赋值给变量"wb"。如果文件不存在,将会抛出一个"FileNotFoundError"的异常。

3. 读取数据

一旦打开了Excel文件,就可以开始读取其中的数据了。openpyxl库提供了几种方式来读取Excel文件中的数据,包括按单元格读取、按行或列读取等。

3.1 按单元格读取

使用openpyxl库的"active"属性可以获取当前活动的工作表,然后可以使用工作表的"cell"方法来访问指定单元格的数据。例如,要读取第1行第1列(A1)单元格的数据,可以使用以下代码:

ws = wb.active

cell_value = ws.cell(row=1, column=1).value

上述代码将获取"example.xlsx"文件中第1行第1列单元格的数据,并将其赋值给"cell_value"变量。需要注意的是,行和列的编号都是从1开始的。

3.2 按行或列读取

openpyxl库还提供了按行或列读取数据的方式,可以使用工作表的"iter_rows"或"iter_cols"方法来遍历行或列,并获取其中的数据。以下是一个示例代码,用来读取一整行的数据:

ws = wb.active

row_values = []

for row in ws.iter_rows(min_row=1, max_row=1):

for cell in row:

row_values.append(cell.value)

上述代码将读取"example.xlsx"文件中第1行的数据,并将每个单元格的值添加到"row_values"列表中。

4. 写入数据

除了读取数据,openpyxl库同样可以用来写入数据到Excel文件中。使用openpyxl库的"active"属性获取当前活动的工作表,然后可以使用工作表的"cell"方法来设置指定单元格的数据。以下是一个示例代码,用来写入数据到第1行第1列(A1)单元格:

ws = wb.active

ws.cell(row=1, column=1).value = 'Hello, World!'

上述代码将在"example.xlsx"文件中的第1行第1列单元格写入数据"Hello, World!"。

5. 保存Excel文件

在对Excel文件进行读写操作后,需要将其保存才能使修改生效。可以使用openpyxl库的"save"方法来保存Excel文件,指定文件名作为参数即可。以下是一个示例代码:

wb.save('example.xlsx')

上述代码将保存对"example.xlsx"文件的所有修改。

6. 创建新的Excel文件

如果想要创建一个新的Excel文件,可以使用openpyxl库的"Workbook"类来创建一个工作簿,然后可以向其中添加工作表,并进行读写操作。以下是一个示例代码,用来创建一个新的Excel文件,并在其中添加一个名为"Sheet1"的工作表:

from openpyxl import Workbook

wb = Workbook()

ws = wb.active

ws.title = 'Sheet1'

wb.save('new_example.xlsx')

上述代码将创建一个名为"new_example.xlsx"的Excel文件,并在其中添加一个名为"Sheet1"的工作表。然后使用"save"方法保存文件。

使用openpyxl库可以方便地对Excel文件进行读写操作,读取数据可以按单元格、按行或列进行,写入数据同样也可以指定单元格进行。通过这篇文章的介绍,相信大家对openpyxl库的用法有了更深入的了解,可以在实际项目中灵活地应用起来。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签