下面是“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()方法保存更改。