伙伴们,大家好,当涉及到在Excel中使用Python自动化任务时,它可以成为你在工作和生活中的得力助手。从处理数据、执行计算到生成报告和图表,Python提供了强大的工具和库,让你能够更高效地管理办公任务。

你可以使用 openpyxl 库来打开、创建、修改和保存Excel文件,让数据处理变得轻而易举。无论是对大型数据表格进行筛选、排序还是进行各种计算,Python都可以帮助你轻松实现。例如,你可以编写脚本来筛选出满足特定条件的数据,然后将这些数据生成到新的工作表中。这不仅能够节省时间,还可以降低错误的风险。
准备
准备Excel表
我准备了一个Excel表,内容如下:


这个简单的Excel表格包含了一些人的基本信息和他们购买的商品的相关数据。你可以使用Python和 openpyxl 库来执行上述数据操作,如数据筛选和计算,以及图表生成。
安装Matplotlib库
通常,你可以使用Python的包管理工具pip来安装库“Matplotlib”。
在windows命令提示符中,运行以下命令:
pip install Matplotlib

我之前安装过,所以如图片显示,该库已安装。若您的电脑中没有安装过,会看到“Successfully installed ...”等文字,说明安装成功了啊。
安装openpyxl库
通常,你可以使用Python的包管理工具pip来安装库“openpyxl”。
Windows用户可以打开命令提示符,请注意,你可能需要加入--user选项来安装openpyxl,运行以下命令来安装openpyxl库:
pip install openpyxl --user

看到“Successfully installed ...”等文字,就安装成功了啊。
以下是基于这个示例表格的Python代码示例:
1.数据筛选:筛选年龄大于等于30岁的人并创建新工作表。
完整代码示例
import openpyxl
# 打开Excel文件
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
# 创建新工作表
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active
# 添加标题行
new_sheet.append(["姓名", "年龄", "产品名称", "价格", "数量"])
# 遍历原始工作表,筛选符合条件的行
for row in sheet.iter_rows(min_row=2):
name = row[0].value
age = row[1].value
if age >= 30:
new_sheet.append([cell.value for cell in row])
# 保存新工作表
new_workbook.save('filtered_data.xlsx')
00:43
代码解释
这段代码使用了 `openpyxl` 库来打开一个名为 'data.xlsx' 的Excel文件,然后在新工作表中筛选出符合特定条件的数据,并将筛选结果保存到一个名为 'filtered_data.xlsx' 的新Excel文件中。让我详细解释代码的每个部分:
1. `import openpyxl`:首先导入了openpyxl库,这个库允许你处理Excel文件。
2. 打开Excel文件:
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
openpyxl.load_workbook('data.xlsx') 用于打开名为 'data.xlsx' 的Excel文件。
workbook.active获取当前工作表,通常是Excel文件中的第一个工作表。
3. 创建新工作表:
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active
openpyxl.Workbook() 创建一个新的Excel工作簿(文件)。
new_workbook.active获取新工作簿中的当前工作表。
4. 添加标题行:
new_sheet.append(["姓名", "年龄", "产品名称", "价格", "数量"])
这行代码在新工作表中添加了一行标题,标题包括"姓名"、"年龄"、"产品名称"、"价格"和"数量"。
5. 遍历原始工作表,筛选符合条件的行:
for row in sheet.iter_rows(min_row=2):
name = row[0].value
age = row[1].value if age >= 30:
new_sheet.append([cell.value for cell in row])
sheet.iter_rows(min_row=2)从原始工作表的第二行(通常是数据行,不包括标题行)开始遍历数据行。
在循环中,它检查每一行的"年龄"列的值是否大于或等于30,如果条件满足,就将整行数据复制到新工作表中。
new_sheet.append([cell.value for cell in row])将满足条件的行复制到新工作表中。
6. 保存新工作表:
new_workbook.save('filtered_data.xlsx')
这行代码保存了包含筛选数据的新工作表为名为 'filtered_data.xlsx' 的Excel文件。
总之,这段代码演示了如何使用openpyxl库打开、创建、修改Excel文件中的数据,并如何筛选出符合特定条件的数据,最后将筛选结果保存到新的Excel文件中。这对于处理大量数据和执行复杂数据操作非常有用。
2.数据计算:计算每个人购买的商品总价并将结果写回到工作表。
完整代码示例
import openpyxl
# 打开Excel文件
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
# 添加标题行
sheet.cell(row=1, column=6, value="总价")
# 计算总价并写入新列
for row in sheet.iter_rows(min_row=2):
price = row[3].value
quantity = row[4].value
total_price = price * quantity
sheet.cell(row=row[0].row, column=6, value=total_price)
# 保存文件
workbook.save('calculated_data.xlsx')
00:33
代码解释
这段代码使用 openpyxl 库来打开名为 'data.xlsx' 的Excel文件,然后执行以下操作:
1.导入openpyxl库:
import openpyxl
2.打开Excel文件:
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
openpyxl.load_workbook('data.xlsx')用于打开名为 'data.xlsx' 的Excel文件。
workbook.active获取当前工作表,通常是Excel文件中的第一个工作表。
3.添加标题行:
sheet.cell(row=1, column=6, value="总价")
这行代码在当前工作表的第一行(通常是标题行)的第6列(F列)添加了一个名为"总价"的标题。这是为了描述新列的内容,用于存储计算后的总价数据。
4.计算总价并写入新列:
for row in sheet.iter_rows(min_row=2):
price = row[3].value # 获取价格(第4列)
quantity = row[4].value # 获取数量(第5列)
total_price = price * quantity # 计算总价
sheet.cell(row=row[0].row, column=6, value=total_price) # 将总价写入第6列
这部分代码使用 for 循环遍历原始工作表的数据行,从第二行开始,即数据行,不包括标题行。
对于每一行,它提取价格和数量,然后计算总价。
最后,它使用 sheet.cell() 方法将总价写入新的"总价"列,该列位于第6列。
5.保存文件:
workbook.save('calculated_data.xlsx')
这行代码保存了包含计算后的数据的工作表为名为 'calculated_data.xlsx' 的新Excel文件。
总之,这段代码演示了如何使用openpyxl库打开、修改Excel文件中的数据,计算总价,并将计算结果保存到新的Excel文件中。这对于执行各种数据操作和自动化任务非常有用,特别是当需要进行数据计算时。
3.图表生成:使用 matplotlib 创建柱状图来展示不同商品的销售情况。
另外,如果你需要在报告中添加图表、表格和图像,Python也能派上用场。
完整代码示例
import openpyxl
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimSun'] # 使用宋体或其他合适的字体
# 打开Excel文件
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
# 读取商品名称和销售数量
products = []
sales = []
for row in sheet.iter_rows(min_row=2):
product = row[2].value
quantity = row[4].value
products.append(product)
sales.append(quantity)
# 创建柱状图
plt.bar(products, sales)
plt.xlabel('商品名称')
plt.ylabel('销售数量')
plt.title('商品销售情况')
# 显示图表
plt.show()

代码解释
这段代码结合了 openpyxl 和 matplotlib 库,用于从Excel文件中读取数据并创建一个柱状图来可视化销售情况。以下是代码的详细解释:
1.导入所需的库:
import openpyxl # 用于处理Excel文件
import matplotlib.pyplot as plt # 用于创建图表
import matplotlibmatplotlib.rcParams['font.sans-serif'] = ['SimSun'] # 设置字体以显示中文
这部分导入了所需的库,包括 openpyxl 用于处理Excel文件,以及 matplotlib 用于创建图表。还设置了字体以确保中文字符正常显示。
2.打开Excel文件:
workbook = openpyxl.load_workbook('data.xlsx')
sheet = workbook.active
openpyxl.load_workbook('data.xlsx') 打开名为 'data.xlsx' 的Excel文件。
workbook.active获取当前工作表,通常是Excel文件中的第一个工作表。
3.读取商品名称和销售数量:
products = []
sales = []
for row in sheet.iter_rows(min_row=2):
product = row[2].value
quantity = row[4].value
products.append(product)
sales.append(quantity)
这部分代码遍历Excel文件的数据行,从第二行(通常是数据行,不包括标题行)开始。
对于每一行,它提取商品名称和销售数量,并将它们分别添加到 products 和 sales 列表中。
4.创建柱状图:
plt.bar(products, sales)
plt.xlabel('商品名称')
plt.ylabel('销售数量')
plt.title('商品销售情况')
这部分使用 plt.bar() 创建一个柱状图,其中 products 是X轴上的商品名称,sales 是Y轴上的销售数量。
plt.xlabel() 和 plt.ylabel() 分别设置X轴和Y轴的标签。
plt.title() 设置图表的标题。
6.显示图表:
plt.show()
最后,使用 plt.show() 来显示图表。
这段代码的主要功能是将Excel中的销售数据以柱状图的形式可视化展示,使你能够更清晰地了解商品销售情况。
无论你是初学者还是有经验的开发者,Python在Excel中的应用都能够带来巨大的帮助。所以,如果你希望提高办公效率、提炼数据处理,不妨考虑学习如何在Excel中应用Python。
感谢你的关注,如果你有任何关于Python在Excel中的应用的问题或需要更多的帮助,欢迎在评论中提出,我将竭尽所能提供支持和解答。让我们一起探索这个有趣而实用的领域吧!