Python使用openpyxl读写excel文件的方法

  • Post category:Python

让我来为您详细讲解“Python使用openpyxl读写excel文件的方法”的完整实例教程。

简介

openpyxl是一个Python库,可以实现在Python中读写Excel文件。它支持Excel 2010或更高版本,且可以处理xlsx、xlsm、xltx和xltm文件。

安装

首先需要安装openpyxl库,可以使用pip来进行安装。

pip install openpyxl

读取Excel文件

假设我们有一个叫做example.xlsx的Excel文件,它有一个名为Sheet1的工作表,工作表中包含一些数据。我们可以使用openpyxl来读取和分析这些数据。

import openpyxl

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

# 选中工作表
worksheet = workbook['Sheet1']

# 获取工作表中的所有行
rows = worksheet.rows

# 遍历所有行,并输出单元格的值
for row in rows:
    for cell in row:
        print(cell.value)

上面的代码中,我们首先使用openpyxl.load_workbook方法打开example.xlsx文件。然后访问Sheet1工作表,通过worksheet.rows方法获取工作表中所有行的列表,遍历这个列表并输出每个单元格的值。

写入Excel文件

另一方面,我们可以使用openpyxl来写入Excel文件。假设我们要将一些数据写入一个名为output.xlsx的工作表中,我们可以像下面这样做:

import openpyxl

# 创建一个新的workbook对象
workbook = openpyxl.Workbook()

# 获取活动的工作表
worksheet = workbook.active

# 在第一行中写入数据
worksheet['A1'] = 'Hello, world!'
worksheet['B1'] = 'Python openpyxl'

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

上面的代码中,我们首先创建一个新的工作表对象,然后使用workbook.active方法获取活动的工作表。我们在第一行中写入数据,并使用workbook.save方法将工作表保存到output.xlsx文件中。

示例说明

举一个更具体的例子,假设我们有一个名为students.xlsx的Excel文件,其中包含一个名为Sheet1的工作表。这个工作表中有三列:学生姓名、年龄和分数。我们想要读取和输出每个学生的姓名和分数,并创建一个新的工作表,其中只包含姓名和分数这两列数据。

读取数据

import openpyxl

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

# 获取指定的工作表
worksheet = workbook['Sheet1']

# 获取所有行
rows = worksheet.rows

# 创建学生信息列表
students = []

# 遍历每行数据
for row in rows:
    # 获取每个单元格的值
    name = row[0].value
    score = row[2].value

    # 将学生姓名和分数添加到列表中
    students.append((name, score))

# 输出结果
for student in students:
    print(f'{student[0]}的分数是{student[1]}')

上面的代码中,我们首先使用openpyxl.load_workbook方法打开students.xlsx文件,然后访问Sheet1工作表。我们通过worksheet.rows方法获取所有行的列表,并遍历这个列表以获取每个学生的姓名和分数。

写入数据

import openpyxl

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

# 获取指定的工作表
worksheet = workbook['Sheet1']

# 创建新的工作表
new_worksheet = workbook.create_sheet('Students Summary')

# 写入表头
new_worksheet['A1'] = '学生姓名'
new_worksheet['B1'] = '分数'

# 写入学生信息
for row, student in enumerate(students, start=2):
    new_worksheet.cell(row=row, column=1, value=student[0])
    new_worksheet.cell(row=row, column=2, value=student[1])

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

上面的代码中,我们首先使用openpyxl.load_workbook方法打开students.xlsx文件,并访问Sheet1工作表。我们创建一个新的工作表对象,将其命名为Students Summary,并在第一行中写入表头。

然后,我们遍历之前创建的学生信息列表,并将每个学生的姓名和分数写入新的工作表中。最后,我们使用workbook.save方法将这个新的工作表保存到students_summary.xlsx文件中。

以上就是使用Python和openpyxl库读写Excel文件的完整实例教程,希望能对你有所帮助。