Python自动创建Excel并获取内容

  • Post category:Python

下面是Python自动创建Excel并获取内容的完整实例教程:

1. 准备工作

在代码之前,我们需要安装一个Python第三方库openpyxl,它可以用于处理Excel文件。可以使用以下命令安装:

pip install openpyxl

2. 创建Excel文件

我们首先需要创建一个Excel文件,可以使用以下代码来创建一个名为“example.xlsx”的工作簿,并向其中添加一个工作表:

import openpyxl

# 创建工作簿
workbook = openpyxl.Workbook()

# 添加工作表
worksheet = workbook.active
worksheet.title = "Sheet1"

# 写入数据
worksheet.cell(row=1, column=1, value="Name")
worksheet.cell(row=1, column=2, value="Age")
worksheet.cell(row=2, column=1, value="Tom")
worksheet.cell(row=2, column=2, value=20)
worksheet.cell(row=3, column=1, value="Jerry")
worksheet.cell(row=3, column=2, value=30)

# 保存工作簿
workbook.save("example.xlsx")

以上代码将创建一个名为“example.xlsx”的工作簿,其中包含一个名为“Sheet1”的工作表,并在第一行和第二行分别写入了“Name”和“Age”,在第三行和第四行分别写入了“Tom”和20,以及“Jerry”和30。

3. 读取Excel文件

创建Excel文件后,我们可以使用以下代码来读取其中的数据:

import openpyxl

# 打开工作簿
workbook = openpyxl.load_workbook("example.xlsx")

# 获取工作表
worksheet = workbook["Sheet1"]

# 获取单元格中的值
name = worksheet.cell(row=2, column=1).value
age = worksheet.cell(row=2, column=2).value

print("Name:", name)
print("Age:", age)

以上代码将打开名为“example.xlsx”的工作簿,在其中获取名为“Sheet1”的工作表,并分别获取第二行第一列和第二列中的单元格中的值。最终输出结果为:

Name: Tom
Age: 20

4. 示例说明

接下来,我们来看两个示例说明:

示例1

有一个字典,其中键为商品名称,值为商品的价格,如下所示:

product = {"shirt": 50, "pants": 30, "shoes": 80}

请你使用Python自动创建一个名为“product.xlsx”的工作簿,并向其中添加一个名为“Price”的工作表,将商品名称和价格写入其中,并保存工作簿。最终工作表内容如下:

商品名称 商品价格
shirt 50
pants 30
shoes 80
import openpyxl

# 创建工作簿
workbook = openpyxl.Workbook()

# 添加工作表
worksheet = workbook.active
worksheet.title = "Price"

# 写入表头
worksheet.cell(row=1, column=1, value="商品名称")
worksheet.cell(row=1, column=2, value="商品价格")

# 写入数据
product = {"shirt": 50, "pants": 30, "shoes": 80}
row = 2

for name, price in product.items():
    worksheet.cell(row=row, column=1, value=name)
    worksheet.cell(row=row, column=2, value=price)
    row += 1

# 保存工作簿
workbook.save("product.xlsx")

以上代码将创建一个名为“product.xlsx”的工作簿,并添加一个名为“Price”的工作表,分别写入表头和商品名称和价格,并最终保存工作簿。

示例2

假设有一个名为“example.xlsx”的工作簿,其中包含一个名为“Score”的工作表,其内容如下:

学生姓名 语文成绩 数学成绩 英语成绩
Tom 80 90 85
Jerry 70 75 80

请你使用Python读取该工作表中的数据,并计算每个学生的总分和平均分,并输出结果。

import openpyxl

# 打开工作簿
workbook = openpyxl.load_workbook("example.xlsx")

# 获取工作表
worksheet = workbook["Score"]

# 获取数据
data = []
for row in worksheet.iter_rows(min_row=2):
    name = row[0].value
    chinese = row[1].value
    math = row[2].value
    english = row[3].value
    total = chinese + math + english
    average = total / 3
    data.append((name, chinese, math, english, total, average))

# 输出结果
for name, chinese, math, english, total, average in data:
    print("姓名:", name)
    print("语文成绩:", chinese)
    print("数学成绩:", math)
    print("英语成绩:", english)
    print("总分:", total)
    print("平均分:", average)
    print()

以上代码将打开名为“example.xlsx”的工作簿,并获取其中的名为“Score”的工作表,依次读取每一行的数据,并计算出每个学生的总分和平均分,并输出结果。

希望以上内容能够对你有所帮助,任何问题欢迎随时提出。