Python Excel处理库openpyxl使用详解

  • Post category:Python

下面是针对“PythonExcel处理库openpyxl使用详解”的完整实例教程,过程中包含两条示例说明的讲解。

PythonExcel处理库openpyxl使用详解

什么是openpyxl

openpyxl是一个Python Excel处理库,可以用于读取和写入Excel文件(xlsx/xlsm/xltx/xltm格式)。

安装

可以使用pip来安装openpyxl:

pip install openpyxl

新建Excel文件

使用openpyxl来新建一个Excel文件非常简单,只需要创建一个Workbook对象即可:

from openpyxl import Workbook

wb = Workbook()

新建Sheet

在新建的Excel文件中,Workbook对象默认会创建一个名为Sheet的Sheet,如果想创建新的Sheet,可以使用Workbook对象的create_sheet方法:

# 创建名为"Sheet2"的Sheet
sheet2 = wb.create_sheet("Sheet2")

# 创建一个名为"AnotherSheet"的Sheet,插入到最前面
another_sheet = wb.create_sheet("AnotherSheet", 0)

写入数据

在Sheet中写入数据非常简单,只需要给对应单元格赋值即可:

sheet["A1"] = "Hello, World!"

如上代码会在Sheet中的A1单元格写入字符串“Hello, World!”

同时,在openpyxl中还有其他方式可以批量添加数据,比如使用append方法添加多行数据:

data = [
    ['name', 'age', 'gender'],
    ['Tom', 20, 'male'],
    ['Jerry', 18, 'female'],
    ['Micky', 22, 'male']
]

for row in data:
    sheet.append(row)

如上代码会在Sheet中添加一个表格,内容与data列表相同。

读取数据

在openpyxl中读取Excel文件也非常容易,只需要使用对应单元格的值即可:

print(sheet["A1"].value)

如上代码会输出A1单元格中的值,即“Hello, World!”

同时,也支持遍历Sheet中所有单元格:

for row in sheet:
    for cell in row:
        print(cell.value, end="\t")
    print()

如上代码会输出Sheet中所有单元格的值。

示例1:统计Excel文件中单元格的数量

from openpyxl import load_workbook

# 加载Excel文件
wb = load_workbook("example.xlsx")

# 遍历Sheet及其所有单元格,统计单元格数量
cell_counter = 0
for sheet in wb:
    for row in sheet:
        for cell in row:
            cell_counter += 1

print(f"The Excel file contains {cell_counter} cells.")

如上代码会输出Excel文件中单元格的数量。

示例2:将数据写入Excel文件

from openpyxl import Workbook

# 创建Workbook和Sheet
wb = Workbook()
sheet = wb.active

# 添加数据
data = [
    ['name', 'age', 'gender'],
    ['Tom', 20, 'male'],
    ['Jerry', 18, 'female']
]

for row in data:
    sheet.append(row)

# 保存Excel文件
wb.save("example.xlsx")

如上代码会新建一个Excel文件,将数据写入Sheet中,并保存文件。

以上就是openpyxl的使用详解,通过这些基本操作,可以完成大部分Excel文件的读取和写入需求。