Python玩转Excel的读写改实例

  • Post category:Python

下面是“Python玩转Excel的读写改实例”的完整实例教程。

目录

  • 导入模块
  • 读取Excel文件
  • 写入Excel文件
  • 修改Excel文件
  • 示例说明一:读取Excel中的数据并进行简单处理
  • 示例说明二:将结果写入Excel文件

导入模块

在Python中,我们需要使用openpyxl模块来读取和写入Excel文件。通过以下代码来导入所需模块:

import openpyxl

读取Excel文件

接下来,我们需要使用openpyxl模块中的load_workbook()函数来打开需要读取的Excel文件,并创建一个workbook对象。然后,我们可以使用workbook对象中的任何一个worksheet对象来读取Excel中的数据。

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

# 获取worksheet对象
worksheet = workbook.active

# 读取数据
for row in worksheet.iter_rows():
    for cell in row:
        print(cell.value)

在上述代码中,我们使用iter_rows()函数来遍历每行数据,并使用for循环来遍历每个单元格,获取单元格的值并打印输出。

写入Excel文件

接下来,我们将讲述如何向Excel文件中写入数据。使用openpyxl模块和load_workbook()函数打开Excel文件,然后创建一个worksheet对象。接下来,我们可以使用worksheet对象中的cell()方法来指定行和列,然后设置单元格的值。

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

# 创建worksheet对象
worksheet = workbook.active

# 写入数据
worksheet['A1'] = 'Hello'
worksheet['B1'] = 'World'

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

在代码中,我们将字符串“Hello”和“World”分别写入了单元格A1和B1。

修改Excel文件

除了读取和写入数据,openpyxl模块还允许我们修改Excel文件中的数据。假设我们需要将单元格A1的值从“Hello”更改为“Bonjour”。使用openpyxl模块和load_workbook()函数打开Excel文件,创建一个worksheet对象,然后使用cell()方法选择要修改的单元格并更改其值。

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

# 创建worksheet对象
worksheet = workbook.active

# 修改数据
worksheet['A1'] = 'Bonjour'

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

在上述代码中,我们使用openpyxl模块中的cell()方法选择需要修改的单元格,然后将其值更改为“Bonjour”。

示例说明一:读取Excel中的数据并进行简单处理

接下来,我们将用一个简单的例子来展示如何读取Excel中的数据并进行简单的处理。我们的目标是读取一个包含学生信息的Excel文件,并找出成绩最高的学生。

首先,我们需要使用load_workbook()函数打开Excel文件并创建worksheet对象。然后,我们将使用每个学生的总分数来确定成绩最高的学生,并使用for循环遍历每行数据。在循环之后,我们输出得分最高的学生的姓名和分数。

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

# 获取worksheet对象
worksheet = workbook.active

# 初始化最高得分和最高得分学生的姓名
max_score = 0
max_score_student = ""

# 遍历每行数据
for row in worksheet.iter_rows(min_row=2, min_col=2, values_only=True):
    # 计算学生的总分数
    total_score = sum(row[1:])

    # 判断是否为最高得分
    if total_score > max_score:
        max_score = total_score
        max_score_student = row[0]

# 输出最高得分学生的姓名和得分
print("The student with the highest score is", max_score_student, "with a score of", max_score)

在上述代码中,我们使用min_row和min_col参数指定从第二行和第二列开始读取数据。我们使用values_only参数来指定只读取单元格的值而不是单元格本身。然后,我们计算了每个学生的总分数,并记录得分最高的学生的姓名和分数。

示例说明二:将结果写入Excel文件

接下来,我们将用前面的例子来展示如何将最高得分学生的姓名和分数写入Excel文件中。

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

# 获取worksheet对象
worksheet = workbook.active

# 初始化最高得分和最高得分学生的姓名
max_score = 0
max_score_student = ""

# 遍历每行数据
for row in worksheet.iter_rows(min_row=2, min_col=2, values_only=True):
    # 计算学生的总分数
    total_score = sum(row[1:])

    # 判断是否为最高得分
    if total_score > max_score:
        max_score = total_score
        max_score_student = row[0]

# 将最高得分学生的姓名和得分写入Excel文件
worksheet['F2'] = 'Highest Score'
worksheet['F3'] = max_score_student
worksheet['G3'] = max_score

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

在上述代码中,我们使用worksheet对象将最高得分学生的姓名和分数写入单元格F3和G3。最后,我们使用save()方法保存更改。