下面我将为您详细讲解Python对Excel的基本操作方法的完整实例教程。
1. 安装所需库
首先,要使用Python来操作Excel,需要安装最常用的openpyxl库。这可以使用pip命令完成。在命令行中输入以下命令即可完成安装:
pip install openpyxl
2. 打开Excel文件
首先,我们需要通过openpyxl库中的load_workbook()函数来加载工作簿。 这个函数需要传入待操作的Excel文件的完整路径,如下所示:
from openpyxl import load_workbook
wb = load_workbook(filename='工作簿1.xlsx')
3. 选择Sheet
工作簿包含许多Sheet,我们需要选择某个Sheet进行操作,使用openpyxl库中的active属性即可实现。 调用属性后返回第一个活动的工作表,可以使用以下代码查询当前活动表:
wb.active
要选择一个不同的Sheet,可以使用以下代码:
ws = wb['Sheet1']
这里将第一个工作表作为示例。
4. 读取数据
读取Excel的数据是最基本的操作之一,可以使用openpyxl库中的cell()函数实现,如下所示:
cell_value = ws.cell(row=1, column=1).value
这将获取第一个单元格的值。 要获取整行或整列的值,可以使用以下代码:
# 获取第一行的所有值
row_values = []
for cell in ws[1]:
row_values.append(cell.value)
# 获取第一列的所有值
col_values = []
for cell in ws['A']:
col_values.append(cell.value)
5. 写入数据
要将数据写入Excel中,可以使用openpyxl库中的cell()函数实现,如下所示:
ws.cell(row=1, column=1, value="Hello World")
这将在第一个单元格中编写”Hello World”。 要同时写入多个单元格,请使用以下代码:
data = [
[1, 2, 3],
[4, 5, 6]
]
for i, row in enumerate(data, start=1):
for j, value in enumerate(row, start=1):
ws.cell(row=i, column=j, value=value)
这将在工作表中编写一个简单的2×3数据集。
示例说明
示例一
下面将一个易传签到表中的数据导入Excel文件中,其中数据是以如下形式存在的:
data = [
['ID', '姓名', '签到时间'],
['001', '小明', '2022-01-05 08:30:00'],
['002', '小红', '2022-01-05 08:45:00'],
['003', '小刚', '2022-01-05 09:00:00']
]
要将这些数据写入Excel文件,可以使用以下代码:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
data = [
['ID', '姓名', '签到时间'],
['001', '小明', '2022-01-05 08:30:00'],
['002', '小红', '2022-01-05 08:45:00'],
['003', '小刚', '2022-01-05 09:00:00']
]
# 写入数据
for row in data:
ws.append(row)
# 保存Excel文件
wb.save('示例一.xlsx')
示例二
下面将一个Excel文件中的数据读入后进行简单处理,然后将处理后的数据写入另一个Excel文件中。假设Excel文件中的数据以如下形式存在:
data = [
['ID', '姓名', '语文', '数学', '英语'],
['001', '小明', 90, 85, 92],
['002', '小红', 87, 95, 89],
['003', '小刚', 92, 92, 90]
]
要实现这个操作,可以使用以下代码:
from openpyxl import load_workbook, Workbook
# 打开原始文件
wb1 = load_workbook(filename='示例二_原始.xlsx')
ws1 = wb1.active
# 处理数据
data = []
for row in ws1.iter_rows(values_only=True):
item = [row[0], row[1]]
item.append(sum(row[2:]) / 3) # 计算平均分
data.append(item)
# 写入数据
wb2 = Workbook()
ws2 = wb2.active
for row in data:
ws2.append(row)
# 保存新文件
wb2.save('示例二_处理后.xlsx')
这里实现了读取数据、数据处理和写入数据3个操作。 原始文件中每个学生有语文、数学和英语3个分数,但是处理后的Excel文件只包含每个学生的平均分数。