开篇小故事:日常工作中的 Excel 问题
“又是 Excel!怎么又是 Excel!”
每当我在处理一些需要导入和导出数据的任务时,Excel 总是让我又爱又恨。作为一个程序员,明明知道这个工具是为数据分析师量身定做的,结果一不小心就被 Excel 的各种问题卡住了。特别是当 Excel 文件里有大量数据或者复杂的格式时,每次打开、编辑、保存都会出现各种意想不到的问题——例如乱码、格式错乱、甚至无法正确读取某些特殊的公式……
于是,我忍无可忍,决定让 Python 来解救我!🎉
好了,废话不多说。今天我们要聊的正是:如何利用 Python 操作 Excel 文件。Python 可不是在这方面默默无闻,它有好几个功能强大的库可以帮我们轻松搞定 Excel 文件的读取、写入、修改等操作。那么,到底有哪些库值得我们使用呢?哪个库最适合自己的项目呢?我们通过一张表格进行对比,帮助你做出选择!
Python 操作 Excel 库大比拼
表格给你做好了,剩下的怎么选参考下面这几句话:
- 数据量大小:大数据集推荐使用pandas
- 格式要求:需要精确控制格式选择openpyxl
- 兼容性:处理旧版Excel文件选择xlrd/xlwt
- 自动化需求:需要Excel自动化操作选择xlwings
- 简单任务:简单的读写操作可以使用pyexcel
- Python版本:根据项目的Python版本选择兼容的库
- 预算考虑:大多数库都是免费的,但如果需要xlwings的高级功能需要付费库名称
openpyxl:最受欢迎的 Excel 操作库 🏆
一、简介
openpyxl 是一个可以读取、写入和修改 Excel 文件(即.xlsx 格式)的 Python 库。它非常适合用来处理那些需要在 Excel 文件中进行数据分析、报表生成等工作的场景。你可以通过它轻松实现批量读取、写入数据、设置格式、绘制图表、甚至进行公式计算等操作。简单来说,它是你的 Excel 好伙伴!📊
官方文档
官方文档地址:openpyxl documentation
文档中详细介绍了库的各个功能,包括基本的读取写入操作、单元格格式设置、样式应用、图表绘制等。如果你有更深入的需求,直接去翻文档就对了!🧐
二、安装教程
我们安装openpyxl 简直轻松得像喝水一样,使用pip 安装:
pip install openpyxl
🎉 就这么简单!如果你使用的是 Jupyter Notebook 也可以直接在 Notebook 中运行:
!pip install openpyxl
安装完成后,你就可以开始愉快地使用openpyxl 来操作 Excel 文件啦!📝
三、使用介绍
现在,我们来进入正题,了解下openpyxl 库的基本用法。准备好了吗?Let's go!🚀
1. 读取Excel文件
我们先来看一个简单的读取 Excel 文件的例子。假设你有一个名为data.xlsx 的 Excel 文件,里面有一些数据:
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('data.xlsx')
# 选择活跃的工作表
ws = wb.active
# 打印某个单元格的内容
print(ws['A1'].value)
上面的代码通过load_workbook 打开了 Excel 文件,ws = wb.active 选中了活动的工作表(一般就是第一个工作表)。然后,我们打印了 A1 单元格的内容。是不是超简单!💡
2. 写入Excel文件
接下来,看看如何向 Excel 写入数据。假设我们要向data.xlsx 文件的 A1 单元格写入“Hello, Python!”:
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('data.xlsx')
# 选择活跃的工作表
ws = wb.active
# 写入数据
ws['A1'] = 'Hello, Python!'
# 保存工作簿
wb.save('data.xlsx')
是不是很像在 Excel 中直接修改内容呀?这就是openpyxl 的魔力!🔮
3. 遍历Excel表格数据
想批量读取多个单元格的数据?那我们可以使用iter_rows() 方法来遍历每一行数据。比如,读取前 3 行的数据:
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('data.xlsx')
# 选择工作表
ws = wb.active
# 遍历前 3 行数据
for row in ws.iter_rows(min_row=1, max_row=3, values_only=True):
print(row)
iter_rows 方法会返回每一行的数据,values_only=True 参数表示我们只关心单元格的值而不需要其他元数据。
四、实战演练
到了最精彩的部分啦!🥳 让我们通过一个小案例来实现更有趣的功能。
案例:自动生成一个简单的成绩单
假设我们要自动生成一个简单的成绩单,包含学生姓名、学号、科目以及成绩等信息。结果生成一个 Excel 表格,数据如下:
| 学生姓名 | 学号 | 科目 | 成绩 |
|---|---|---|---|
| 张三 | 202301 | 数学 | 95 |
| 李四 | 202302 | 英语 | 88 |
| 王五 | 202303 | 物理 | 91 |
好啦,接下来我们就用openpyxl 来生成这个成绩单!
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 选择活动的工作表
ws = wb.active
ws.title = "成绩单"
# 添加表头
ws.append(["学生姓名", "学号", "科目", "成绩"])
# 添加学生成绩
students = [
("张三", "202301", "数学", 95),
("李四", "202302", "英语", 88),
("王五", "202303", "物理", 91)
]
# 将数据逐行添加
for student in students:
ws.append(student)
# 保存工作簿
wb.save("成绩单.xlsx")
运行这段代码后,Excel 文件成绩单.xlsx 就会自动生成并保存到当前目录啦!🎓🎉 你还可以根据需要对表格进行更多操作,比如设置字体样式、单元格边框、单元格填充颜色等。下面是一个添加单元格样式的例子:
添加单元格样式
from openpyxl.styles import Font, Color, Alignment
# 设置字体加粗,字体颜色为红色
bold_font = Font(bold=True, color="FF0000")
# 设置单元格居中
center_alignment = Alignment(horizontal="center", vertical="center")
# 设置 A1 单元格样式
ws['A1'].font = bold_font
ws['A1'].alignment = center_alignment
# 保存文件
wb.save("成绩单_样式.xlsx")
看,Excel 文件中 A1 单元格的字体变成了红色并且加粗,且内容居中显示!🔥
五、小结
通过上面的介绍,你应该对 openpyxl 库有了一个全面的了解。这个库不仅能让你轻松地读取、写入 Excel 文件,还能处理更复杂的操作,如设置单元格样式、添加公式、绘制图表等。👩💻
pandas:数据分析的首选库 📊
一、简介:
pandas 是一个开源的 Python 数据分析库,它的名字来源于 "panel data"(面板数据),专门用来处理和分析结构化数据,尤其擅长表格数据。通过pandas,你可以轻松地读取、清洗、处理、分析各种数据,包括 Excel、CSV、SQL、JSON 等多种格式的数据。
官方文档:
pandas 官方文档
文档里有详细的操作说明,记得可以时常去看看哦,它就像是你学习数据分析的"救命稻草"!🧐
二、安装教程
如果你还没有安装pandas,那你就太落后了!(开个玩笑,不要介意哈 😆)安装非常简单,只需要通过 Python 的包管理工具pip 来安装。打开你的命令行窗口,输入以下命令:
pip install pandas
等着它自顾自地安装完毕,不用担心,速度快得就像你在赶火车一样!🚆
小提示:有时候可能需要加上--user 参数,避免权限问题:
pip install --user pandas
安装完了之后,别忘了检查一下是否安装成功!在 Python 中输入:
import pandas as pd
如果没有报错,那就成功了!👍
三、使用介绍
说了这么多,肯定有同学问了,pandas 这个库能干什么?最常见的操作之一就是读取和写入 Excel 文件,因为在工作中很多数据都是存储在 Excel 中的。那我们就从这里入手,来看看怎么用pandas 轻松操作 Excel 吧!
1. 读取 Excel 文件
我们来使用pandas 中的read_excel 函数读取 Excel 文件。首先,你需要安装一个额外的库——openpyxl,它可以让pandas 读取.xlsx 格式的文件。可以通过以下命令安装:
pip install openpyxl
一旦安装好了,就可以开始读取 Excel 文件了!假设你有一个名为data.xlsx 的 Excel 文件,代码如下:
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
# 显示数据
print(df)
read_excel 函数参数:
sheet_name:指定读取哪一张工作表。默认读取第一张工作表。如果你想读取第二张或其他的工作表,可以通过sheet_name=1或sheet_name='Sheet2'来指定。header:指定标题行,默认为0,表示第一行是标题。
2. 写入 Excel 文件
pandas 还可以将你处理后的数据写回 Excel 文件,简直不要太方便!你只需要使用to_excel 函数。例如,将数据框df 写入output.xlsx:
# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)
小提醒:参数index=False 表示不把索引列也写入 Excel。如果你想保留索引,可以去掉这个参数或者设置为True。
四、实战演练
让我们来一场小小的实战演练!假设我们有一份 Excel 文件,包含一些学生成绩数据(students.xlsx):
| 姓名 | 数学 | 英语 | 语文 |
|---|---|---|---|
| 小明 | 85 | 90 | 92 |
| 小红 | 88 | 94 | 91 |
| 小强 | 78 | 82 | 79 |
我们要做什么呢?简单!我们用pandas 来读取这份文件,计算每个学生的平均分,然后保存回 Excel!
- 读取 Excel 文件
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('students.xlsx')
# 打印原始数据
print("原始数据:")
print(df)
- 计算平均分
# 计算平均分
df['平均分'] = df[['数学', '英语', '语文']].mean(axis=1)
# 打印包含平均分的新数据
print("新增平均分:")
print(df)
- 写入 Excel 文件
# 将数据写回新的 Excel 文件
df.to_excel('students_with_avg.xlsx', index=False)
print("处理完的数据已保存为 'students_with_avg.xlsx'")
五、小结
- pandas 是处理数据的神器,不仅支持 Excel 文件,还能读取 CSV、SQL 等格式,强大到不行!
- 使用
read_excel和to_excel读写 Excel 文件时,记得安装openpyxl库。 - 在使用
pandas处理数据时,一定要善用它的DataFrame 结构,它可是最强的数据管理神器! - 遇到问题时,可以随时去官方文档找找答案,别让自己孤军奋战!😎
xlrd:专注于旧版.xls 格式 📚
一、简介
xlrd 是一个 Python 库,用于读取 Excel 文件(.xls 和.xlsx 格式)。如果你需要从 Excel 中提取数据,或者你是个数据分析师/程序员,整天和 Excel 打交道,xlrd 就是你的好伙伴!👯♀️
注意: 从xlrd 版本 2.0 开始,它只支持.xls 格式,不再支持.xlsx 格式了!但没关系,解决方案是使用openpyxl 来处理.xlsx 文件。xlrd 专注于.xls 文件,但还是非常好用的!⚡
官方文档
- 你可以在这里找到
xlrd的官方文档:xlrd.readthedocs.io/en/latest/ - 文档里会有详细的安装教程、API 说明以及更多的使用案例。你可以在这里了解所有
xlrd的功能和特性。
二、安装教程
安装xlrd 非常简单,只需要使用pip 命令就可以了!🎉
在你的终端中输入以下命令:
pip install xlrd
如果你用的是python3,可以试试:
pip3 install xlrd
安装完毕后,试试运行一下 Python,导入xlrd:
import xlrd
print(xlrd.__version__)
如果没有报错,说明你成功安装了xlrd!👏
三、使用介绍
现在我们来看看如何用xlrd 打开和读取 Excel 文件。🎬
1 打开 Excel 文件
首先,我们要打开一个 Excel 文件。假设我们有一个名为sample.xls 的文件,内容大致如下:
| 姓名 | 年龄 | 城市 |
|---|---|---|
| 小明 | 20 | 北京 |
| 小红 | 22 | 上海 |
| 小李 | 25 | 广州 |
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook('sample.xls')
# 打印出所有工作表的名称
print(workbook.sheet_names()) # ['Sheet1']
# 获取第一个工作表
sheet = workbook.sheet_by_index(0)
2 读取 Excel 内容
一旦打开了 Excel 文件并获取了工作表,我们就可以开始读取数据啦!例如,读取表格中的单元格:
# 获取表格中第一行第一列的值
first_cell = sheet.cell_value(0, 0) # '小明'
print(first_cell)
# 获取第二行第二列的值
second_cell = sheet.cell_value(1, 1) # 22
print(second_cell)
3 读取整行或整列
有时我们需要一次性读取一行或一列的数据。xlrd 提供了简单的方法来实现这一点。
# 获取第一行数据(索引从0开始)
first_row = sheet.row_values(0) # ['小明', 20, '北京']
print(first_row)
# 获取第一列数据
first_col = sheet.col_values(0) # ['小明', '小红', '小李']
print(first_col)
4 获取表格的尺寸
如果你想知道表格的大小(行数、列数),可以使用nrows 和ncols 属性:
# 获取表格的行数和列数
rows = sheet.nrows
cols = sheet.ncols
print(f"行数:{rows}, 列数:{cols}")
四、实战演练
我们来个实战演练!假设你有一个包含学生成绩单的 Excel 文件,格式如下:
| 姓名 | 数学成绩 | 英语成绩 | 语文成绩 |
|---|---|---|---|
| 小明 | 90 | 85 | 92 |
| 小红 | 88 | 91 | 85 |
| 小李 | 95 | 89 | 94 |
我们将使用xlrd 来读取并计算每个学生的平均成绩。💡
1 创建score.xlsx 文件
首先,确保你有一个类似于上面这样的成绩单文件。如果没有,可以用 Excel 自己创建一个,或者使用以下 Python 代码生成它(通过openpyxl):
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(["姓名", "数学成绩", "英语成绩", "语文成绩"])
sheet.append(["小明", 90, 85, 92])
sheet.append(["小红", 88, 91, 85])
sheet.append(["小李", 95, 89, 94])
wb.save("score.xlsx")
2 使用xlrd 读取成绩并计算平均分
import xlrd
# 打开成绩单文件
workbook = xlrd.open_workbook('score.xlsx')
sheet = workbook.sheet_by_index(0)
# 获取列索引
name_col = 0
math_col = 1
english_col = 2
chinese_col = 3
# 遍历所有学生的成绩并计算平均分
for row_idx in range(1, sheet.nrows): # 从1开始跳过表头
name = sheet.cell_value(row_idx, name_col)
math_score = sheet.cell_value(row_idx, math_col)
english_score = sheet.cell_value(row_idx, english_col)
chinese_score = sheet.cell_value(row_idx, chinese_col)
# 计算平均分
avg_score = (math_score + english_score + chinese_score) / 3
print(f"{name} 的平均成绩是:{avg_score:.2f}")
输出:
小明 的平均成绩是:89.00 小红 的平均成绩是:88.00 小李 的平均成绩是:92.67
五、小结
我们通过几个简单的例子学习了 xlrd 库的基本用法,掌握了如何读取 Excel 文件中的数据,如何获取特定单元格的值、整行或整列数据,并实现了一个计算学生平均成绩的小项目。🚀
记住:xlrd 是一个非常强大的工具,尤其适合你处理 .xls 格式的 Excel 文件。如果你需要处理 .xlsx 文件,可以尝试用 openpyxl 或 pandas。😎
xlwt:写.xls 格式的专用库 🖊️
一、简介
xlwt 是一个Python库,专门用来写入Excel文件,尤其是对 .xls 格式的文件有很好的支持。它可以让你像操作Excel一样,轻松地在Python中创建、编辑、保存工作簿和工作表,填充各种格式的单元格数据。虽然现在很多人更习惯使用openpyxl 来操作.xlsx 文件,但xlwt 依然在一些老旧项目中发挥着重要作用。
xlwt 的主要功能:
- 创建新的
.xls文件。 - 向工作表中插入数据、公式、格式。
- 设置单元格的字体、颜色、边框、对齐方式等。
- 支持读取和修改已有的
.xls文件。
官方文档
- 你可以在这里找到 xlwd 的官方文档:xlwt.readthedocs.io/en/latest/
- 当你需要处理的Excel文件是
.xls格式时,xlwt非常合适。 - 如果你需要快速创建一些格式化的报告,或者对已有的
.xls文件进行简单修改,xlwt也能满足你的需求。
二、安装教程
打开你的终端或命令行工具,输入以下命令:
pip install xlwt
安装成功后,你就可以在Python中导入并使用它啦!
import xlwt
三、使用介绍
接下来,咱们来看看如何使用xlwt 来创建一个简单的Excel文件,填充一些数据,并进行格式化。让你的Excel文件既好看又好用!💅
1 创建一个工作簿
创建工作簿是你创建任何Excel文件的第一步:
import xlwt
# 创建一个工作簿
workbook = xlwt.Workbook()
2 创建工作表
有了工作簿,接下来我们要创建一个工作表:
# 创建一个工作表,名字是“Sheet1”
sheet = workbook.add_sheet("Sheet1")
3 向单元格写入数据
工作表已经创建好,现在我们来给它填充一些数据:
# 向第1行第1列的单元格写入数据
sheet.write(0, 0, "Hello, Excel!")
sheet.write(1, 0, "This is xlwt!")
★
记住,
write方法中的第一个参数是行号,第二个参数是列号,第三个是你想写入的数据。请注意,xlwt使用的是从0开始的索引(所以行列都从0算起)。🧮”
4 设置单元格格式
既然要让Excel文件既好看又实用,当然得给单元格设置一些格式了。这里,我们可以给单元格设置字体、对齐方式、边框和背景颜色等。
# 创建一个字体对象
font = xlwt.Font()
font.bold = True# 设置字体加粗
font.colour_index = 2# 设置字体颜色为红色
# 创建一个对齐对象
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_CENTER # 水平居中对齐
# 创建一个样式对象
style = xlwt.XFStyle()
style.font = font
style.alignment = alignment
# 向第1行第2列写入数据并应用样式
sheet.write(0, 1, "Formatted Text", style)
★
在这里,我们给单元格加粗了红色字体,并且水平居中对齐了文本。是不是很酷?😎
”
5 保存工作簿
所有的内容设置好后,别忘了保存工作簿!
# 保存工作簿
workbook.save("example.xls")
★
小贴士:保存的文件是
.xls格式,这也是xlwt的默认格式。如果需要处理.xlsx文件,可以考虑使用openpyxl或xlsxwriter。”
四、实战演练
我们来做个简单的实战练习,制作一个带有格式的学生成绩单,包含学生姓名、科目、成绩等信息,并加上一些格式。
import xlwt
# 创建工作簿
workbook = xlwt.Workbook()
# 创建工作表
sheet = workbook.add_sheet("成绩单")
# 设置标题样式
title_font = xlwt.Font()
title_font.bold = True
title_style = xlwt.XFStyle()
title_style.font = title_font
# 设置列标题
sheet.write(0, 0, "学生姓名", title_style)
sheet.write(0, 1, "语文成绩", title_style)
sheet.write(0, 2, "数学成绩", title_style)
sheet.write(0, 3, "英语成绩", title_style)
# 填充学生成绩数据
students = [
("张三", 90, 85, 92),
("李四", 78, 88, 84),
("王五", 82, 79, 80)
]
# 填充数据
for i, student in enumerate(students, start=1):
sheet.write(i, 0, student[0])
sheet.write(i, 1, student[1])
sheet.write(i, 2, student[2])
sheet.write(i, 3, student[3])
# 设置总成绩列标题
sheet.write(0, 4, "总成绩", title_style)
# 计算每个学生的总成绩并填充
for i in range(1, len(students) + 1):
total_score = students[i-1][1] + students[i-1][2] + students[i-1][3]
sheet.write(i, 4, total_score)
# 保存文件
workbook.save("student_scores.xls")
print("成绩单已经生成!🎉")
运行这个程序,你会得到一个格式化的Excel成绩单,里面包含了学生姓名、各科成绩以及总成绩。是不是很方便!📈
五、小结
xlwt 是一个非常实用的库,适合用于生成和操作.xls 格式的Excel文件。它支持基本的数据写入、格式设置(如字体、颜色、对齐、边框等),对于一些简单的Excel操作非常高效。虽然现在.xlsx 格式更为流行,但如果你只需要处理.xls 文件,xlwt 依然是一个不错的选择。💡
xlwings:在 Python 与 Excel 之间架起桥梁的神器✨
一、简介
xlwings 是一个非常强大的 Python 库,它能让你轻松地操控 Excel,直接在 Excel 中运行 Python 代码,也能将 Excel 文件中的数据导入 Python。简而言之,它就是 Python 和 Excel 的"亲密助手",你完全可以把它当作 Excel 操作的超能力工具。
核心功能:
- 操作 Excel 文件:可以读取、修改、写入 Excel 文件。
- 数据交换:方便地将 Excel 数据与 Python 中的变量互相传递。
- 内置 Excel 公式支持:可以在 Excel 中直接运行 Python 脚本。
- Excel 图表生成:自动生成图表和其他图形化内容。
- 和 Pandas 兼容:Pandas DataFrame 可以轻松读写到 Excel。
官方文档:
- xlwings 官方文档:docs.xlwings.org/en/stable/
- 文档里有详细的安装方法、示例代码和一些高级用法,强烈推荐大家去看。😎
二、安装教程
xlwings 的安装非常简单,就像吃个小蛋糕一样(当然,要是你不会做蛋糕,别担心,Python 为你解决了所有问题 😋)。
1. 使用pip 安装:
pip install xlwings
如果你使用的是Anaconda,可以直接在 Conda 环境中安装:
conda install -c conda-forge xlwings
2. 安装完成后,验证是否安装成功:
import xlwings as xw
print(xw.__version__)
如果你能看到版本号,恭喜你!安装成功,🎉🎉🎉,接下来就是大显身手的时候了!
三、使用介绍
在我们进入实战之前,先来简单了解一下如何用xlwings 操作 Excel。
1.打开一个 Excel 文件
import xlwings as xw
# 打开 Excel
app = xw.App(visible=True) # visible=True 表示 Excel 窗口可见
workbook = app.books.open('你的Excel文件.xlsx') # 打开一个已存在的文件
2.读取和修改单元格
# 读取指定单元格内容
sheet = workbook.sheets['Sheet1'] # 获取名为 'Sheet1' 的工作表
value = sheet.range('A1').value # 读取 A1 单元格的值
print(value)
# 修改指定单元格内容
sheet.range('A2').value = 'Hello from xlwings!' # 在 A2 单元格写入内容
3.写入多个单元格(批量操作)
import pandas as pd
# 创建一个 Pandas DataFrame
data = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]
})
# 将 DataFrame 写入 Excel
sheet.range('A1').value = data
4.运行 Python 代码并在 Excel 中显示结果
你可以直接在 Excel 中运行 Python 代码,并将结果展示在 Excel 表格中。这对于数据分析和自动化操作来说非常方便!
四、实战演练
现在让我们通过一个简单的实战来看看如何运用xlwings 来自动化填报 Excel 数据。
假设你有一个 Excel 表格,每个月需要记录不同员工的考勤情况。现在我们需要自动化填报一些数据。
1.首先创建一个 Excel 文件(例如attendance.xlsx) ,内容如下:
| 姓名 | 1号 | 2号 | 3号 | 4号 | 5号 |
|---|---|---|---|---|---|
| Alice | |||||
| Bob | |||||
| Charlie |
2.Python 脚本自动填报数据
import xlwings as xw
import random
# 打开 Excel 文件
app = xw.App(visible=True)
workbook = app.books.open('attendance.xlsx')
sheet = workbook.sheets['Sheet1']
# 填报数据
for i in range(1, 4): # 从第 1 行到第 3 行(员工)
for j in range(1, 6): # 从第 1 列到第 5 列(日期)
# 随机填入出勤数据(假设随机出勤,1为出勤,0为缺席)
sheet.range(i + 1, j + 1).value = random.choice([0, 1])
# 保存文件
workbook.save('attendance_filled.xlsx')
workbook.close()
这段代码会为每个员工的每天考勤情况随机填充0 或1,然后保存为新的 Excel 文件——attendance_filled.xlsx。
3.运行脚本后,Excel 文件将自动填充考勤数据,就像魔术一样!🎩✨
五、小结
xlwings 是一个非常强大的工具,它不仅能帮助我们自动化处理 Excel 文件,还能让我们在 Excel 中运行 Python 代码,极大地提升了工作效率和自动化程度。🎯
通过今天的介绍和示例,你应该能初步掌握xlwings 的基本用法了。接下来,你可以在项目中发挥创意,去尝试更多的功能,比如图表生成、动态更新数据等等。
额外的技巧:利用xlwings 提升工作效率 🚀
- 与 Pandas 配合使用:你可以将 Pandas DataFrame 直接写入 Excel,极大地提升数据分析和可视化的效率。
- 自动化报告:如果你每天需要生成报告,
xlwings可以帮你通过 Python 自动化这个过程,告别手动操作! - Excel 与 Python 双向互动:不仅 Python 可以修改 Excel 数据,Excel 还可以调用 Python 脚本进行更复杂的计算,简直是"Python+Excel"的黄金搭档!
pyexcel:数据你来搞,剩下的细节交给我 🍰
一、简介
PyExcel 是一个简单而强大的库,用于读取、写入和操作 Excel 文件(.xls、.xlsx、.ods 等)。它的主要目标是简化数据表格的操作,避免让你陷入那些繁琐的 Excel 处理细节。你只需要关注数据,PyExcel 会为你做剩下的事情。
你可以通过它轻松地操作 Excel 表格,并且它的 API 非常简洁易懂。如果你之前已经被 Excel 的复杂 API 噎到,使用 PyExcel 可能会让你重新爱上表格!💡
官方文档:
你可以访问 PyExcel 的官方文档来获取更多详细信息:PyExcel Documentation
二、安装教程
想要用 PyExcel 进行 Excel 操作吗?很简单!只需要运行以下命令来安装这个库:
pip install pyexcel
此外,如果你需要支持.xlsx 格式的文件(这是大多数人的首选格式),还可以安装以下依赖:
pip install pyexcel-xlsx
当然,如果你还需要操作 ODS(OpenDocument Spreadsheet)格式的文件,可以额外安装:
pip install pyexcel-ods
安装完这些,你就可以开始你的表格处理之旅了!🌟
三、使用介绍
1. 读取 Excel 文件
假设你有一个名为data.xlsx 的文件,里面包含了一些数据。使用 PyExcel 来读取这个文件只需要这么简单的几行代码:
import pyexcel as pe
# 读取 Excel 文件
sheet = pe.get_sheet(file_name="data.xlsx")
# 输出读取的数据
print(sheet)
这时候,sheet 会以一个类似二维列表的结构返回 Excel 中的内容。例如:
| Name | Age | City | |----------|-----|-----------| | Alice | 30 | New York | | Bob | 25 | Los Angeles|
是不是超级简洁?🤩
2. 写入 Excel 文件
如果你想把数据保存成一个 Excel 文件,PyExcel 也让这件事变得超级轻松!只需要将数据以字典、列表或者字典列表的形式传入save_as 函数就行了:
import pyexcel as pe
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles']
]
# 保存为 Excel 文件
pe.save_as(array=data, dest_file_name="output.xlsx")
这样,output.xlsx 就会被生成,并且内容是我们给定的数据。想要看一下 Excel 文件是不是已经写好?直接打开就行,代码可不需要那么复杂!😉
3. 操作数据
PyExcel 还支持一些基本的数据操作。例如,删除某一列、修改某一行或者筛选数据。想让表格变得更“好看”一点?
import pyexcel as pe
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles']
]
# 创建一个 Sheet 对象
sheet = pe.Sheet(data)
# 删除第二列
sheet.delete_columns([1])
# 输出修改后的数据
print(sheet)
输出的内容将不再有“Age”这一列:
| Name | City | |----------|-----------| | Alice | New York | | Bob | Los Angeles|
4. 过滤数据
想要筛选符合条件的行?当然没问题!比如筛选出所有“Age”大于等于30的人:
import pyexcel as pe
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles']
]
# 创建一个 Sheet 对象
sheet = pe.Sheet(data)
# 筛选出 Age >= 30 的行
filtered_data = sheet.row.select(lambda row: row[1] >= 30)
# 输出筛选后的数据
print(filtered_data)
输出:
[['Name', 'Age', 'City'], ['Alice', 30, 'New York']]
看!是不是很简单?💡
四、实战演练
场景:生成报告
假设你正在做一份关于员工信息的 Excel 报告,内容包括:员工姓名、年龄、城市、薪资、入职日期等信息。你需要将这些信息汇总到一个 Excel 文件中,PyExcel 来帮忙。
- 准备数据
首先,我们构建一个模拟的员工数据列表:
import pyexcel as pe
from datetime import datetime
# 模拟的员工数据
employees = [ ['Name', 'Age', 'City', 'Salary', 'Joining Date'],
['Alice', 30, 'New York', 80000, datetime(2015, 6, 1)],
['Bob', 25, 'Los Angeles', 75000, datetime(2017, 9, 15)],
['Charlie', 28, 'Chicago', 72000, datetime(2019, 1, 20)]
]
- 写入 Excel 文件
接着,我们使用pyexcel 将这些数据写入到 Excel 文件:
# 写入员工数据到 Excel
pe.save_as(array=employees, dest_file_name="employee_report.xlsx")
- 数据处理
假设你想将“Salary”列进行汇总,查看一下每个人的薪资总额,或者做一些其他操作,PyExcel 也能够轻松应对。比如我们将薪资大于 75,000 的员工筛选出来:
# 筛选出薪资大于 75,000 的员工
high_salary_employees = pe.Sheet(employees).row.select(lambda row: row[3] > 75000)
print(high_salary_employees)
输出:
[['Name', 'Age', 'City', 'Salary', 'Joining Date'], ['Alice', 30, 'New York', 80000, datetime(2015, 6, 1)]]
- 最终汇总
这样,你就可以用 PyExcel 来实现一个数据处理和生成 Excel 文件的小小应用啦!🎉
五、小结
PyExcel 是一个非常简单易用的库,它为你处理 Excel 文件提供了非常便利的 API,让你可以专注于数据本身,而不用被 Excel 文件的繁琐细节所困扰。通过几个简单的命令,你就能读取、写入、处理 Excel 文件,甚至做一些更复杂的数据筛选操作。
如果你还在为 Excel 文件的操作而头疼,不妨尝试一下 PyExcel,相信它会让你爱不释手的!🎈
写在最后 🎯
爆肝一整宿,希望这篇文章能帮助你快速找到合适的 Excel 库。