目录
- 专栏导读
- 库的介绍
- 库的安装
- 1、读取Excel文件(按行读取)
- 2、读取Excel文件(按某列读取)
- 3、新增一列
- 4、删除一列
- 5、插入一行
- 6、删除一行
- 7、修改单元格值
- 8、修改单元底色
- 9、修改单元格字体
- 10、获取sheet表 切换sheet表
- 总结
库的介绍
Openpyxl是一个强大的Python库,主要用于读取、写入和操作Excel文件(特别是.xlsx格式)。它提供了一组功能丰富的API,支持Excel 2010及更高版本的文件格式,使得在编程中处理Excel文件变得非常容易。
Openpyxl的主要特点和功能包括:
1、支持.xlsx格式:Openpyxl主要用于处理Excel 2010及更新版本的.xlsx文件。
2、读写Excel文件:用户可以使用Openpyxl读取现有的Excel文件,获取数据,修改数据,并保存到新的文件中。
3、操作单元格:Openpyxl允许用户按行、列或具体的单元格进行数据的读取和写入。
4、创建和修改工作表:用户可以创建新的工作表,复制和删除现有的工作表,以及设置工作表的属性等。
5、样式设置:Openpyxl允许用户设置单元格的字体、颜色、边框等样式。
6、图表和公式:用户可以通过Openpyxl创建图表、添加公式等。
7、支持数字和日期格式:Openpyxl能够正确处理数字和日期格式,确保在Excel中显示正确的格式。
在Openpyxl中,有三个主要的对象:Workbook、Worksheet和Cell。Workbook代表一个Excel文档,Worksheet代表表格,Cell则代表单元格。这些对象都包含了许多属性和方法,方便用户进行各种操作。
安装和导入Openpyxl也相对简单。用户可以使用pip进行安装,然后在Python程序中通过import语句导入整个库或特定的模块和函数。
总的来说,Openpyxl是一个功能强大、易于使用的Python库,可以大大提高处理Excel文件的效率。无论是自动化处理大量数据,还是创建漂亮的报告,Openpyxl都是一个强大的工具。
库的安装
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/
准备一个测试Excel数据
1、读取Excel文件(按行读取)
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx',read_only=True)
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 循环遍历每一行,将每一行的数据以列表形式添加到 rows 列表中
for i, row in enumerate(worksheet.iter_rows(values_only=True), 1):
d = list(row)
print(f"行{i}",d)
输出
行1 ['姓名', '班级', '性别', '年龄']
行2 ['张1', 1, '男', 10]
行3 ['张2', 1, '男', 11]
行4 ['张3', 1, '男', 12]
行5 ['张4', 1, '男', 13]
行6 ['张5', 1, '男', 14]
行7 ['张6', 1, '男', 15]
行8 ['张7', 1, '男', 16]
略略略略
2、读取Excel文件(按某列读取)
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 循环遍历每一行,将每一行的数据以列表形式添加到 rows 列表中
for i, cell in enumerate(worksheet["A"], 1):
print(f"行{i}",cell.value)
输出
行1 姓名
行2 张1
行3 张2
行4 张3
行5 张4
行6 张5
行7 张6
行8 张7
略略
3、新增一列
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 新增一列
worksheet.insert_cols(1)
workbook.save("结果.xlsx")
输出
4、删除一列
import openpyxl
from openpyxl.styles import Font
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 删除B列
for row in worksheet.iter_rows(min_row=1, max_row=worksheet.max_row, min_col=2, max_col=2):
for cell in row:
cell.value = None
workbook.save("结果.xlsx")
输出
5、插入一行
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 在第三行插入一行
worksheet.insert_rows(3)
workbook.save("结果.xlsx")
输出
6、删除一行
import openpyxl
from openpyxl.styles import Font
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 删第5行
worksheet.delete_rows(5)
workbook.save("结果.xlsx")
输出
7、修改单元格值
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 将A1 单元格修改为:哈哈
worksheet['A1'] = '哈哈'
workbook.save("结果.xlsx")
输出
8、修改单元底色
import openpyxl
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 将第一行单元格底色修改为橙色
for cell in worksheet[1]:
cell.fill = openpyxl.styles.PatternFill(start_color='FFC000', end_color='FFC000', fill_type='solid')
workbook.save("结果.xlsx")
输出
9、修改单元格字体
import openpyxl
from openpyxl.styles import Font
# 设置字体对象
font = Font(name='微软雅黑', size=10, bold=True)
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 将第一行字体设置为:微软雅黑10号加粗
for cell in worksheet[1]:
cell.font = font
workbook.save("结果.xlsx")
输出
10、获取sheet表 切换sheet表
import openpyxl
from openpyxl.styles import Font
# 打开 Excel 文件,获取 Workbook 对象
workbook = openpyxl.load_workbook('./text.xlsx')
# 选择需要读取数据的 Sheet,获取 Worksheet 对象
worksheet = workbook.active
# 获取所有sheet表
for sheet in workbook.sheetnames:
print(sheet)
# 切换heet
worksheet = workbook[sheet]
print("正在处理:", sheet)
workbook.save("结果.xlsx")
输出
Sheet1
正在处理: Sheet1
Sheet2
正在处理: Sheet2