关于Python自动化操作Excel

  • Post category:Python

下面是关于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 文件,开发者可以根据自己的需求进行相应的调整和优化。