当前位置: 首页 > article >正文

Python中openpyxl库的基础解析与代码实例

目录

1. 前言

2. 安装openpyxl

3. 创建一个新的工作簿

4. 打开一个已有的工作簿

5. 读取和写入单元格

6. 操作工作表

7. 样式设置

8. 插入图像

9. 插入图表

10. 数据验证

11. 条件格式

12. 工作簿保护

13. 保存和关闭工作簿

14. 总结


1. 前言

在数据分析和处理的过程中,Excel文件是一种非常常见的数据格式。Python作为一种强大的编程语言,提供了多种库来处理Excel文件,其中openpyxl是一个非常流行的库。openpyxl是一个专门用于读取和写入Excel xlsx/xlsm/xltx/xltm文件的Python库。它提供了丰富的功能,可以满足我们在处理Excel文件时的大部分需求。在本篇博客中,我将详细介绍openpyxl库的基本用法和一些常用功能。无论你是初学者还是有一定经验的开发者,都可以通过本文了解如何使用openpyxl来操作Excel文件。

2. 安装openpyxl

在使用openpyxl之前,我们需要先安装它。可以使用pip命令来安装:

pip install openpyxl

3. 创建一个新的工作簿

from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 获取当前活动的工作表
ws = wb.active# 给工作表设置标题
ws.title = "My First Sheet"# 保存工作簿
wb.save("example.xlsx")

4. 打开一个已有的工作簿

from openpyxl import load_workbook# 打开一个已有的工作簿
wb = load_workbook('example.xlsx')# 获取所有工作表的名称
print(wb.sheetnames)# 获取特定的工作表
ws = wb['My First Sheet']

5. 读取和写入单元格

# 写入数据到单元格
ws['A1'] = 'Hello'
ws['B1'] = 'World'# 读取单元格的值
print(ws['A1'].value)  # 输出:Hello# 另一种写入方式
ws.append([1, 2, 3])  # 在最后一行追加一行数据

6. 操作工作表

# 创建新的工作表
ws1 = wb.create_sheet("New Sheet")# 复制工作表
ws2 = wb.copy_worksheet(ws1)
ws2.title = "Copied Sheet"# 删除工作表
del wb['New Sheet']

7. 样式设置

from openpyxl.styles import Font, Alignment, PatternFill, Border, Side# 设置字体
font = Font(name='Arial', size=12, bold=True, italic=True, color='FF0000')
ws['A1'].font = font# 设置对齐方式
alignment = Alignment(horizontal='center', vertical='center')
ws['A1'].alignment = alignment# 设置填充颜色
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
ws['A1'].fill = fill# 设置边框
border = Border(left=Side(style='thin'),right=Side(style='thin'),top=Side(style='thin'),bottom=Side(style='thin')
)
ws['A1'].border = border

8. 插入图像

from openpyxl.drawing.image import Image# 插入图像
img = Image('example.jpg')
ws.add_image(img, 'D1')

9. 插入图表

from openpyxl.chart import BarChart, Reference# 准备数据
data = Reference(ws, min_row=1, min_col=1, max_row=5, max_col=2)# 创建图表
chart = BarChart()
chart.add_data(data, titles_from_data=True)# 设置图表标题
chart.title = "Sales Data"
chart.x_axis.title = 'Month'
chart.y_axis.title = 'Sales'# 添加图表到工作表
ws.add_chart(chart, "E1")

10. 数据验证

from openpyxl.worksheet.datavalidation import DataValidation# 创建数据验证规则
dv = DataValidation(type="list", formula1='"Apple,Banana,Cherry"', showDropDown=True)# 将数据验证应用到单元格
dv.add('A2:A10')
ws.add_data_validation(dv)

在Excel的A2到A10单元格区域,会自动生成一个下拉列表,用户只能从预设的选项中选择值(AppleBananaCherry),而不能输入其他内容。 

11. 条件格式

from openpyxl.styles import Font
from openpyxl.formatting.rule import CellIsRule# 设置条件格式规则
red_font = Font(color='FF0000')
rule = CellIsRule(type='greaterThan', formula=['50'], font=red_font)# 应用条件格式
ws.conditional_formatting.add('B2:B10', rule)

上面代码的功能是为Excel工作表中的特定单元格区域(B2:B10)设置条件格式,实现“当单元格的值大于50时,字体变为红色”的效果。 

12. 工作簿保护

# 保护工作簿
wb.security.workbook_password = 'secret'
wb.security.lockStructure = True# 保护工作表
ws.protection.sheet = True
ws.protection.password = 'sheetsecret'

13. 保存和关闭工作簿

# 保存工作簿
wb.save('example.xlsx')# 关闭工作簿(在某些情况下可能需要)
wb.close()

14. 总结

openpyxl是一个功能强大且易于使用的Python库,用于处理Excel文件。从基本的创建和打开工作簿,到复杂的样式设置、图表插入、数据验证等高级功能,openpyxl都能满足我们的需求。通过本篇博客的介绍,大家应该已经掌握了openpyxl的基本用法和一些常用功能。在实际项目中,openpyxl可以帮助我们高效地处理Excel数据,提高工作效率。我是橙色小博,关注我,一起在人工智能领域进步!

http://www.lryc.cn/news/2393094.html

相关文章:

  • GoldenDB管理节点zk部署
  • mac mini m4命令行管理员密码设置
  • 计算机网络之差错控制中的 CRC(循环冗余校验码)
  • 红客 Linux 系统性全解析
  • 【深度学习】7. 深度卷积神经网络架构:从 ILSVRC、LeNet 到 AlexNet、ZFNet、VGGNet,含pytorch代码结构
  • 基于cornerstone3D的dicom影像浏览器 第二十七章 设置vr相机,复位视图
  • 2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)
  • Jenkins实践(7):Publish over SSH功能
  • SQLite 中文写入失败问题总结
  • JavaScript篇:闭包:JavaScript中的魔法口袋,装下你的编程智慧
  • ubuntu系统安装Pyside6报错解决
  • DeepSeek 赋能智能零售:从数据洞察到商业革新
  • 榕壹云医疗服务系统:基于ThinkPHP+MySQL+UniApp的多门店医疗预约小程序解决方案
  • 苏州SAP代理公司排名:工业园区企业推荐的服务商
  • 数据结构中无向图的邻接矩阵详解
  • .NET 7 AOT 使用及 .NET 与 Go 语言互操作详解
  • OpenCV 第7课 图像处理之平滑(一)
  • React 编译器
  • HCIP:MPLS静态LSP的配置及抓包
  • VASP 教程:VASP 结合 Phonopy 计算硅的比热容
  • YOLO使用SAHI进行小目标检测
  • [论文阅读]Prompt Injection attack against LLM-integrated Applications
  • 【SpringCache 提供的一套基于注解的缓存抽象机制】
  • DALI DT6与DALI DT8介绍
  • day13 leetcode-hot100-24(链表3)
  • Python实战:打造高效通讯录管理系统
  • 图解深度学习 - 基于梯度的优化(梯度下降)
  • MySql--定义表存储引擎、字符集和排序规则
  • 【部署】在离线服务器的docker容器下升级dify-import程序
  • 优化版本,增加3D 视觉 查看前面的记录