自动化办公:openpyxl操作Excel的7个示例

1. 引言:Python与Excel自动化办公的优势

在日常工作中,Excel作为数据分析和报告制作的利器,几乎无人不知无人不晓。然而,面对大量重复的数据录入、整理、分析任务时,手动操作不仅耗时费力,还容易出错。此时,Python与它的强大库openpyxl便闪亮登场,助你轻松实现Excel自动化办公。Python以其简洁易学的语法和丰富的数据处理库,能高效地处理复杂的数据任务,而openpyxl则是专门用于操作Excel文件的库,让你无需打开Excel,就能完成创建、读取、编辑等操作。

2. openpyxl库简介与安装

openpyxl是一个开源的Python库,专注于读写Microsoft Excel 2010 xlsx/xlsm/xltx/xltm文件。它支持高级功能如数据验证、图表、超链接、注释等,且性能优秀,对大型文件处理游刃有余。安装只需在命令行中输入以下命令:

pip install openpyxl

3. 示例一:创建新Excel文件并写入数据

想在Python里“无中生有”一个Excel文件?openpyxl帮你实现!下面的代码将创建一个名为“my_data.xlsx”的文件,并在其中填入一些数据:

from openpyxl import Workbook# 创建Workbook对象,相当于一个新的Excel文件
wb = Workbook()# 获取默认的活跃工作表(Sheet)
ws = wb.active# 在A1到C3单元格写入数据
for row in range(1, 4):for col in 'ABC':ws[col+str(row)] = f"Data {row} {col}"# 保存到硬盘
wb.save("my_data.xlsx")

4. 示例二:读取现有Excel文件数据

有了数据,自然要能读取。这段代码将打开“my_data.xlsx”,读取其内容并打印出来:

from openpyxl import load_workbook# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")# 获取第一个工作表(索引为0)
ws = wb.worksheets[0]# 遍历所有单元格并打印内容
for row in ws.iter_rows():for cell in row:print(cell.value)

5. 示例三:修改单元格内容及样式

数据错了?颜色不满意?openpyxl让你轻松调整:

from openpyxl.styles import Font, Color# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active# 修改A1单元格内容为"Updated Data"
ws["A1"] = "Updated Data"# 设置A1单元格字体为红色,加粗
font = Font(color=Color(rgb='FF0000'), bold=True)
ws["A1"].font = font# 保存更改
wb.save("my_data.xlsx")

6. 示例四:添加/删除行与列

数据结构需要调整?openpyxl让你增删自如:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active# 在第二行前插入一行
ws.insert_rows(2)# 删除第三列(C列)
ws.delete_cols(3)# 保存更改
wb.save("my_data.xlsx")

7. 示例五:合并单元格与设置条件格式

表格需要更美观?合并单元格与条件格式来帮忙:

from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active# 合并A1到C1单元格
ws.merge_cells('A1:C1')# 创建一个条件格式规则:当单元格值大于10时填充绿色
green_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
rule = CellIsRule(operator='>', formula=['10'], stopIfTrue=False, fill=green_fill)# 应用规则到整个工作表
ws.conditional_formatting.add('A1:C5', rule)# 保存更改
wb.save("my_data.xlsx")

8. 示例六:利用公式计算与数据统计

数据需要计算或统计?openpyxl支持直接写入公式:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active# 在D1单元格写入求和公式
ws["D1"] = "=SUM(A1:C1)"# 在D2单元格写入平均值公式
ws["D2"] = "=AVERAGE(A2:C2)"# 保存更改并计算公式结果
wb.save("my_data.xlsx")

9. 示例七:批量处理多个工作表

面对多工作表的大型文件,openpyxl也能轻松应对:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")# 遍历所有工作表
for sheet in wb.worksheets:print(f"Processing sheet: {sheet.title}")# 对每个工作表执行相同的操作,如数据清洗、格式化等# 保存更改
wb.save("my_data.xlsx")

10. 结语:进阶学习与应用场景推荐

恭喜你,通过以上7个示例,你已经掌握了openpyxl的基本操作。接下来,你可以尝试结合pandas库进行更复杂的数据分析,或者利用定时任务实现自动化报表生成。无论你是处理销售数据、财务报表,还是科研数据,openpyxl都能成为你提升工作效率的得力助手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

faster_whisper语音识别

faster_whisper语音识别 检测可用设备:list_available_devices()函数 我这边usb摄像头带麦克风的,所以 DEV_index 8 1 使用 pyaudio 打开音频设备 2 从音频设备读取数据,传递给 faster_whisper 识别 按键 r 录制 s 停止 q退出 test.py #…

隐私是建立人工智能信任的关键

微信关注公众号网络研究观获取更多。 谷歌的 Astra 是其首款人工智能代理 谷歌继续将生成式人工智能融入网络安全 云的复杂性是我们这个时代最大的安全威胁 云安全最受关注的问题:人工智能生成的代码 企业可以从人工智能中获得转型利益,但确保“隐…

CAD二次开发(4)-编辑图形

工具类:EditEntityTool.cs using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Th…

计划跳槽需要做哪些准备?

计划跳槽是一个复杂的过程,需要充分的准备和策略。以下是一些关键的准备步骤: 自我评估:首先,明确你跳槽的原因和目标。你想从新工作中得到什么?是更好的薪酬、职业发展、工作环境,还是其他因素&#xff1…

Leetcode | 5-22 | 每日一题 | 找出输掉零场或一场比赛的玩家

🔥博客介绍: EvLast 🎥系列专栏: 数据结构与算法 , 算法入门 , C项目 , Leetcode_DayCode 🎥 当前专栏: Leetcode_DayCode 专题 : 数据结构帮助小白快速入门算法 👍👍👍&#x1…

Go语言之Gorm框架(一) ——初窥Gorm框架

Gorm和Mysql驱动的安装 打开终端,输入下列命令即可: go get gorm.io/driver/mysql go get gorm.io/gormGorm连接数据库 示例 package mainimport ("fmt""github.com/sirupsen/logrus""gorm.io/driver/mysql""gor…

HE TB PPDU MU-RTS

看起来像是MU-RTS的触发帧的应答不是HE TB PPDU,而是传统得的帧,应答CTS。 非AP 的STA,是不能发送触发帧,也就是说,触发帧,只能是由AP发送给STA

AI视频智能分析引领智慧园区升级:EasyCVR智慧园区视频管理方案

一、系统概述与需求 随着信息技术的不断发展,智慧园区作为城市现代化的重要组成部分,对安全监控、智能化管理提出了更高的要求。智慧园区视频智能管理系统作为实现园区智能化管理的重要手段,通过对园区内各关键节点的视频监控和智能分析&…

一文了解安卓内存抖动

目录 目录一、什么是内存抖动?1.1 Android里的内存抖动1.2 如何直观查看这种现象1.3 内存抖动带来的风险 二、如何避免内存抖动 目录 一、什么是内存抖动? 在程序里,每创建一个对象,就会有一块内存分配给它,每分配一…

LabVIEW虚拟测试实验室开发

LabVIEW虚拟测试实验室开发 在当代的科技和工业进步中,测试与测量扮演着至关重要的角色。随着技术的发展,测试系统也变得日益复杂和成本昂贵,同时对测试结果的准确性和测试过程的效率要求越来越高。开发了一种基于LabVIEW的虚拟测试实验室的…

ICQ 将于 6 月关闭,这是一种奇怪的方式,发现它在 2024 年仍然活跃

你知道ICQ还活着吗?不过,不要太兴奋;它将永远消失。 还记得ICQ吗?如果你这样做了,你可能会记得它是AOL在1998年购买的Messenger客户端,就在Yahoo Instant Messager和MSN Messenger加入竞争的时候。然后Skype出现了&…

SpringBoot3笔记(一)SpringBoot3-核心特性

快速学习 SpringBoot 看官方文档: Spring Boot Reference Documentation 计划三天学完 笔记:https://www.yuque.com/leifengyang/springboot3 代码:https://gitee.com/leifengyang/spring-boot-3 一、SpringBoot3 - 快速入门 1.1 简介 …

计算机组成原理要点和难点以及实例

计算机组成原理是关于计算机硬件系统的内部结构和工作原理的研究。它主要涵盖了计算机硬件系统的基本组成部分、运算和控制单元、存储器和输入输出设备等方面。 首先,计算机硬件系统通常由以下几个基本部分组成: 运算器:主要功能是对数据和信息进行运算和加工。它由通用寄存…

【全开源】招聘求职小程序系统源码(ThinkPHP+原生微信小程序)

基于ThinkPHP和原生微信小程序开发的招聘平台系统,包含微信小程序求职者端、微信小程序企业招聘端、PC企业招聘端、PC管理平台端 构建高效人才交流平台 一、引言:招聘求职市场的数字化趋势 在数字化时代,招聘求职市场也迎来了巨大的变革。…

Django分页操作实例

分页操作 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数 属性 count:对象总数num_pages&#xff1…

【LeetCode面试经典150题】101. 对称二叉树

一、题目 101. 对称二叉树 - 力扣(LeetCode)给你一个二叉树的根节点 root , 检查它是否轴对称。 二、思路 解法一:只能说似曾相识,是前两道题的融合,一棵树如果对称,那我将他的左子树或者右子树…

仅需一块 4GB 的 GPU ,就能运行开源大语言模型:Llama3 70B

最强的开源大语言模型 Llama3 已经发布一段时间了,一些盆友资源有限,私信询问是否可以使用 4GB 的 VRAM 在本地运行 Llama3 70B。 与 GPT-4 相比,Llama3 的性能如何?Llama3 使用了哪些关键的前沿技术使其变得如此强大&#xff1f…

WordPress插件优化对提升性能有多大影响?

WordPress插件优化对提升性能的影响可以是非常显著的。插件是WordPress平台的一个重要组成部分,它们可以增强网站的功能和定制性。然而,如果插件没有经过优化,它们可能会成为网站性能的瓶颈。 通过优化插件,可以减少对服务器资源…

GDB对Linux信号的处理方式

前言 在软件开发过程中,调试工具是程序员不可或缺的助手。GDB(GNU Debugger)作为一个强大的调试器,广泛应用于Linux系统中的C/C程序调试。然而,信号处理机制的复杂性常常给调试带来挑战。特别是在处理异步和同步信号时…

WordPress外贸建站服务的实际案例分析

在竞争激烈的外贸市场,提升用户体验是吸引和保留客户的关键。WordPress外贸建站服务通过结合设计、功能和性能,有效地提升了用户体验。本文将通过实际案例分析,深入探讨如何在WordPress外贸建站中提升用户体验的关键策略。 1. 优化导航和布局…