当下,使用Python处理Excel文件已经成为了一项必备技能,而openpyxl是Python中用于处理Excel文件的一种非常常用的库。本篇文章将详细讲解使用openpyxl处理Excel文件的完整实例教程,包含了读取Excel文件、写入Excel文件、工作表操作以及多个实战示例说明。
简介
openpyxl是一个纯Python库,可以轻松读写Excel文件。它能够读取和写入xlsx、xlsm、xltx和xltm文件,支持Excel 2010和以上的版本。
接下来将围绕打开工作簿、打开工作表、读取Excel文件和写入Excel文件提供一些示例代码的说明。
安装
openpyxl可以使用pip安装:
pip install openpyxl
打开工作簿
使用openpyxl库打开Excel文件,需要创建一个Workbook对象。Workbook对象代表整个工作簿(即Excel文件)。
下面是一个打开Excel文件的示例代码:
from openpyxl import load_workbook
workbook = load_workbook(filename='example.xlsx')
打开工作表
Workbook对象代表整个Excel文件,而工作表是文件中的一部分。要打开工作表,需要使用Worksheet对象。
下面是一个打开工作表的示例代码:
from openpyxl import load_workbook
workbook = load_workbook(filename='example.xlsx')
sheet = workbook.active
在这个例子中,.active属性选择的是当前活动的工作表。
如果要选择其他工作簿,可以通过以下方法选择:
# 获取工作簿对象
workbook = load_workbook(filename='example.xlsx', read_only=True)
# 获取所有工作表的名字列表
sheet_names = workbook.sheetnames
# 获取索引为1的工作表
sheet = workbook[sheet_names[1]]
# 获取指定名字的工作表
sheet = workbook['Sheet1']
读取Excel文件
使用openpyxl可以很容易地读取Excel文件中的数据。下面是一个从Excel文件中读取数据的示例代码:
from openpyxl import load_workbook
workbook = load_workbook(filename='example.xlsx')
sheet = workbook.active
# 读取工作表中的数据
for row in sheet.iter_rows(min_row=2, values_only=True):
id, name, grade = row
print(f"{id} {name} {grade}")
在这个示例代码中,我们使用.iter_rows()方法遍历工作表中的所有行。values_only属性确定我们只要返回单元格的值,而不是包含单元格坐标和值的元组。
min_row参数指定从哪一行开始读取(在这个示例中,从第二行开始读取,因为第一行是表头)。
示例:读取包含不同学生信息的Excel文件
from openpyxl import load_workbook
# 加载工作簿
workbook = load_workbook(filename='students.xlsx')
# 选择工作表
sheet = workbook['Sheet1']
# 打印出所有的学生信息
for row in sheet.iter_rows(min_row=2, max_col=3, values_only=True):
id, name, grade = row
print(f"ID: {id}, Name: {name}, Grade: {grade}")
根据上述代码,打开名为“students.xlsx”的工作簿,并选择名为“Sheet1”的工作表。使用.iter_rows()方法遍历工作表中的所有行。在遍历时,我们通过max_col参数指定只要前三列(即id、name和grade),然后从第二行开始遍历,因为第一行是表头。最后,打印出每个学生的信息。
写入Excel文件
使用openpyxl库,我们还可以很容易地写入数据到Excel文件中。下面是一个将数据写入Excel文件的示例代码:
from openpyxl import Workbook
# 创建工作簿对象
workbook = Workbook()
# 创建工作表对象
sheet = workbook.active
# 在表中写入数据
sheet["A1"] = "Title"
sheet["B1"] = "Value1"
sheet["C1"] = "Value2"
sheet["D1"] = "Value3"
sheet.append(["Value4", "Value5", "Value6"])
sheet.append(["Value7", "Value8", "Value9"])
# 保存工作簿
workbook.save(filename="data.xlsx")
在上述代码中,我们使用Workbook类创建了一个空的工作簿。然后,使用.active属性获取当前活动的工作表,并使用.Worksheet方法在第一行创建了表头。接下来,通过.append()方法将数据添加到工作表中。
最后,使用.save()方法将数据保存到一个名为“data.xlsx”的文件中。
示例:将100个学生信息写入Excel文件
from openpyxl import Workbook
from faker import Faker
# 伪造学生数据
def create_student_data(num):
fake = Faker()
students = [["ID", "Name", "Grade"]]
for i in range(num):
student = [i+1, fake.name(), fake.random_int(min=0, max=100)]
students.append(student)
return students
# 创建工作簿对象
workbook = Workbook()
# 创建工作表对象
sheet = workbook.active
# 写入学生信息
students = create_student_data(100)
for row in students:
sheet.append(row)
# 保存工作簿
workbook.save(filename="students.xlsx")
在上述代码中,我们使用了Faker库生成了一些伪造的学生数据。通过create_student_data()函数创建了包含三列(分别是ID、Name和Grade)100行学生信息的列表。
然后,使用Workbook类创建一个空的工作簿,使用.active属性获取当前活动的工作表,并通过.append()方法将学生信息逐行添加到工作表中。
最后,使用.save()方法将包含学生信息的工作簿保存到名为“students.xlsx”的文件中。
总结
在本文中,我们讲解了使用Python的openpyxl库处理Excel文件的完整实例教程,包括打开工作簿、打开工作表、读取Excel文件和写入Excel文件。此外,还给出了两个实际示例,分别是读取包含不同学生信息的Excel文件和将100个学生信息写入Excel文件。
使用Python的openpyxl库处理Excel文件是一项非常常用的技能,掌握这个技能有助于提高数据处理效率和数据分析能力。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 使用openpyxl处理Excel文件详情 - Python技术站