下面是关于Python自动化操作Excel的完整实例教程。
准备工作
在 Python 中,我们可以使用 openpyxl 库来实现自动化操作 Excel。首先需要安装 openpyxl 库,可以使用以下命令来安装:
pip install openpyxl
读取 Excel 文件
如果要读取 Excel 文件,可以使用 openpyxl 库提供的 load_workbook 方法来打开文件,然后再选择要操作的表格:
from openpyxl import load_workbook
# 打开 Excel 文件
workbook = load_workbook(filename='sample.xlsx')
# 选择要操作的表格
worksheet = workbook['Sheet1']
# 打印表格第一列的所有单元格的值
for cell in worksheet['A']:
print(cell.value)
以上代码会打印出表格第一列的所有单元格的值。
写入 Excel 文件
如果要向 Excel 文件中写入数据,可以使用 openpyxl 库提供的 Workbook 和 Worksheet 类来创建新的表格,然后再向其中写入数据:
from openpyxl import Workbook
# 创建新的 Excel 文件
workbook = Workbook()
# 选择要操作的表格
worksheet = workbook.active
# 写入数据
worksheet['A1'] = 'Hello'
worksheet['B1'] = 'World'
# 保存文件
workbook.save(filename='output.xlsx')
这段代码会创建一个新的 Excel 文件,并向其中写入两个单元格的数据。
示例说明
以下是两个示例,分别说明如何读取和写入 Excel 文件。
示例1:读取 Excel 文件
我们假设有一个名为 data.xlsx 的 Excel 文件,其第一列为日期,第二列为当日的销售额。现在我们需要统计该 Excel 文件中每个月的销售额总和。我们可以使用以下代码来实现:
from openpyxl import load_workbook
from collections import defaultdict
# 打开 Excel 文件
workbook = load_workbook(filename='data.xlsx')
# 选择要操作的表格
worksheet = workbook.active
# 定义一个默认值为0的字典,用于统计每个月的销售额
total_sales = defaultdict(int)
# 遍历每个单元格,统计每个月的销售额总和
for row in worksheet.iter_rows(min_row=2, values_only=True):
date, sales = row
month = date.month
total_sales[month] += sales
# 打印结果
for month, sales in total_sales.items():
print(f'Month {month}: {sales}')
以上代码会读取名为 data.xlsx 的 Excel 文件,并统计每个月的销售额总和,最终输出结果。
示例2:向 Excel 文件写入数据
我们要向 Excel 文件中添加一些数据,这些数据的来源是一个文本文件。假设文本文件中每行为一条数据,数据之间使用逗号分隔。我们需要将这些数据写入到一个空白的 Excel 文件中。我们可以使用以下代码来实现:
import csv
from openpyxl import Workbook
# 创建新的 Excel 文件
workbook = Workbook()
# 选择要操作的表格
worksheet = workbook.active
# 打开文本文件,读取数据
with open('data.txt', newline='') as csvfile:
reader = csv.reader(csvfile)
for row_num, row in enumerate(reader):
# 写入数据
for col_num, data in enumerate(row):
worksheet.cell(row=row_num+1, column=col_num+1, value=data)
# 保存文件
workbook.save(filename='output.xlsx')
以上代码会打开名为 data.txt 的文本文件,并将其中的数据写入到一个新的 Excel 文件中。由于我们不知道文本文件中有多少行,因此我们使用了一个 for 循环来遍历数据,并将数据写入到单元格中。写入完成后,程序会将数据保存到一个名为 output.xlsx 的 Excel 文件中。
以上两段示例说明了如何使用 Python 自动化操作 Excel 文件,开发者可以根据自己的需求进行相应的调整和优化。