百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

openpyxl,一个超强的Python库(openpyxl库的主要用途)

itomcoil 2025-04-30 17:34 17 浏览

前言



openpyxl 是一个用于读写 Excel 文件(.xlsx)的 Python 库。它支持 Excel 2010 及更高版本的文件格式。openpyxl 提供了一种方便的方式来操作 Excel 文件,包括读取和写入单元格数据、创建和修改工作表、设置样式以及执行其他与 Excel 相关的操作。

以下是一些 openpyxl 的主要特点:

1.支持 .xlsx 格式:openpyxl 主要用于处理 Excel 2010 及更新版本的 .xlsx 文件。

2.读写 Excel 文件:你可以使用 openpyxl 读取现有的 Excel 文件,获取数据,修改数据,并保存到新的文件中。

3.操作单元格:openpyxl 允许你按行、列或具体的单元格进行数据的读取和写入。

4.创建和修改工作表:你可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。

5.样式设置:openpyxl 允许你设置单元格的字体、颜色、边框等样式。

6.图表和公式:你可以通过 openpyxl 创建图表、添加公式等。

7.支持数字和日期格式:openpyxl 能够正确处理数字和日期格式,确保在 Excel 中显示正确的格式。

一.安装

pip install openpyxl

二.导入

from openpyxl import Workbook

二.基本用法

1.写入excel数据

from openpyxl import Workbook


# 创建一个工作簿(Workbook)
workbook = Workbook()


# 获取默认的活动工作表(Worksheet)
sheet = workbook.active
# sheet = workbook.get_sheet_by_name('Sheet1')


# 在单元格 A1,B1 写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'


# 保存工作簿到文件
workbook.save('writeExcle.xlsx')

2.写入一行数

# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 将一行数据写入工作表
sheet.append(data_row)

3.写入指定行数据

# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 指定要写入的行号
row_number = 2  # 例如,写入到第二行
# 将一行数据写入指定行
for col_num, value in enumerate(data_row, start=1):
    sheet.cell(row=row_number, column=col_num, value=value)

4.读指定单元格数据

from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 读取单元格数据
value_A1 = sheet['A1'].value
value_B1 = sheet['B1'].value
print(f'A1: {value_A1}, B1: {value_B1}')

5.遍历每一行数据

from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 遍历每一行
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
    print(row)

6.遍历指定列数据

# 指定要遍历的列(例如,列 A)
target_column = 'A'


# 遍历指定列的每一行
for cell in sheet[target_column]:
    print(cell.value)


7.遍历多列数据

# 指定要遍历的列范围(例如,列 A 到列 C)
start_column = 'A'
end_column = 'B'


# 遍历指定列范围的每一行
for row in sheet.iter_cols(min_col=sheet[start_column][0].column, max_col=sheet[end_column][0].column, values_only=True):
    print(row)

8.设置字体样式

from openpyxl.styles import Font
# 创建字体样式
font = Font(name='Arial', size=12, bold=True, italic=True)


# 将字体样式应用到单元格
cell.font = font


9.设置颜色

from openpyxl.styles import Font


# 创建字体样式,设置颜色为红色
font = Font(color='FF0000')


# 将字体样式应用到单元格
cell.font = font


10.设置边框样式

from openpyxl.styles import Border, Side


# 创建边框样式
border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))


# 将边框样式应用到单元格
cell.border = border


11.设置填充样式

from openpyxl.styles import PatternFill


# 创建填充样式,设置背景颜色为黄色
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')


# 将填充样式应用到单元格
cell.fill = fill


12.设置货币格式

cell.number_format = '$#,##0.00'


13.设置日期格式

# 设置单元格为日期时间格式
cell.number_format = 'YYYY-MM-DD HH:MM:SS'

14.插入图片

from openpyxl.drawing.image import Image
# 创建一个 Image 对象,并指定要插入的图片文件路径
image_path = 'test.jpg'
image = Image(image_path)
# 设置图片的位置和大小
# 假设我们要将图片插入到单元格 A1 中
cell = 'A1'
image.anchor = cell
image.width = 100
image.height = 100


# 将图片插入到工作表中
worksheet.add_image(image)


三.使用注意事项


  1. 文件格式支持:确保您操作的是.xlsx或.xlsm格式的文件,因为openpyxl不支持旧版的.xls格式。如果需要处理.xls文件,可以考虑将其转换为.xlsx格式后再使用openpyxl进行处理。
  2. 安装库:在使用openpyxl之前,需要先进行安装。可以通过pip命令进行安装:pip install openpyxl
  3. 公式和函数:在写入公式时,需要在公式字符串前面加上等号(=),并确保使用的是Excel支持的函数和语法。
  4. 样式设置:openpyxl允许通过设置样式来美化Excel文件,包括字体、颜色、边框等。在进行样式设置时,可以参考相关的示例代码来了解具体的操作方法。
  5. 性能考虑:在处理大型Excel文件时,需要注意内存的使用情况,因为openpyxl会将整个工作簿加载到内存中。这可能会对系统资源造成较大压力,尤其是在处理非常庞大的数据集时。
  6. 保存工作:在对Excel文件进行修改后,记得及时保存工作,以免数据丢失。
  7. 版本兼容性:由于openpyxl是基于Office Open XML标准,所以在使用特定功能时,需要考虑Excel版本的兼容性问题。

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...