下面是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”的工作表,依次读取每一行的数据,并计算出每个学生的总分和平均分,并输出结果。
希望以上内容能够对你有所帮助,任何问题欢迎随时提出。