Python openpyxl模块原理及用法解析

  • Post category:Python

Pythonopenpyxl模块是一个Python操作excel文件的库,它可以实现Excel文件的读取、写入和修改操作。本文将介绍Pythonopenpyxl模块的原理和用法,并带有实例教程。

一、Pythonopenpyxl模块原理

Pythonopenpyxl模块基于openpyxl库开发,使用openpyxl库中的组件来实现对Excel文件的读取、写入和修改操作。

二、Pythonopenpyxl模块用法

接下来,我们来讲解Pythonopenpyxl模块的用法,包括读取Excel文件、写入Excel文件和修改Excel文件。

1.读取Excel文件

Pythonopenpyxl模块可以读取Excel文件并把文件中的数据读取到Python的数据结构中。以下是一个读取Excel文件并输出其中内容的实例:

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取sheet
sheet = workbook['Sheet1']

# 遍历输出每行的数据
for row in sheet.iter_rows():
    for cell in row:
        print(cell.value, end=' ')
    print()

以上代码打开了一个名为example.xlsx的Excel文件,并获取了其名为Sheet1的sheet。接着,我们遍历了sheet中的每一行,并输出每行的数据。在遍历每行时,我们又遍历了每个单元格,并输出每个单元格的值。

2.写入Excel文件

Pythonopenpyxl模块可以实现对Excel文件的写入操作。以下是一个向Excel文件中写入数据的实例:

import openpyxl

# 新建Excel文件
workbook = openpyxl.Workbook()

# 获取sheet
sheet = workbook['Sheet']

# 写入数据
sheet['A1'].value = 'Name'
sheet['B1'].value = 'Age'
sheet['A2'].value = 'Jenny'
sheet['B2'].value = 23

# 保存Excel文件
workbook.save('example.xlsx')

以上代码新建了一个空的Excel文件,并获取了其名为Sheet的sheet。接着,我们向sheet中写入了数据,并最后把Excel文件保存到example.xlsx文件中。

3.修改Excel文件

Pythonopenpyxl模块可以实现对Excel文件的修改操作。以下是一个修改Excel文件中数据的实例:

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取sheet
sheet = workbook['Sheet']

# 修改数据
sheet['B2'].value = 24

# 保存Excel文件
workbook.save('example.xlsx')

以上代码打开了一个名为example.xlsx的Excel文件,并获取了其名为Sheet的sheet。接着,我们修改了单元格B2的值,并最后把Excel文件保存到example.xlsx文件中。

三、Pythonopenpyxl模块示例说明

以下是两条Pythonopenpyxl模块的实例说明。

示例1:统计Excel文件中各列的和

以下示例展示了如何统计Excel文件中每列的和。假设我们有一个名为example.xlsx的Excel文件,其中有三列数据,我们需要统计这三列数据各自的和:

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取sheet
sheet = workbook['Sheet1']

# 获取最大行和列
max_rows = sheet.max_row
max_cols = sheet.max_column

# 遍历各列的数据并求和
sums = [0] * max_cols
for row in range(1, max_rows+1):
    for col in range(1, max_cols+1):
        sums[col-1] += sheet.cell(row=row, column=col).value

# 输出各列的和
for i in range(max_cols):
    print("Column %s sum: %s" % (openpyxl.utils.get_column_letter(i+1), sums[i]))

以上代码打开了一个名为example.xlsx的Excel文件,并获取了其名为Sheet1的sheet。接着,我们遍历了每个单元格,计算出每列的和,并输出了每列的和。

示例2:将Excel文件中的数据转换为JSON格式

以下示例展示了如何将Excel文件中的数据转换为JSON格式。假设我们有一个名为example.xlsx的Excel文件,其中有两列数据,我们需要将这两列数据转换为JSON格式:

import openpyxl
import json

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取sheet
sheet = workbook['Sheet1']

# 获取最大行和列
max_rows = sheet.max_row
max_cols = sheet.max_column

# 转换为JSON格式
data = []
for row in range(2, max_rows+1):
    record = {}
    for col in range(1, max_cols+1):
        key = sheet.cell(row=1, column=col).value
        value = sheet.cell(row=row, column=col).value
        record[key] = value
    data.append(record)

json_data = json.dumps(data)
print(json_data)

以上代码打开了一个名为example.xlsx的Excel文件,并获取了其名为Sheet1的sheet。接着,我们遍历了每个单元格,把每行数据转换为一个JSON对象,并把所有数据转换为JSON格式。

四、总结

本文讲解了Pythonopenpyxl模块的原理和用法,并且提供了两个示例说明。通过本文的介绍,您应该已经能够使用Pythonopenpyxl模块来操作Excel文件了。