python:使用openpyxl模块处理excel

前言

        最近在实践excel的处理,在此途中,我彻底抛弃了xlwt + xlrd的组合,投入了openpyxl这一模块的怀抱。

        并成功实现了excel单元格数据的快速访问、修改、样式保持,以及添加填充色等功能。

        至于为什么写这个博客,主要是因为现在csdn里留着很多关于xlwt + xlrd的无脑使用,这为其他开发人员设置了一种过时的误区。

        这里我提供一些详细的测试代码,截止现在它们都可以直接运行,或许将为你的功能添砖加瓦。

 

代码

        1、获得目标行目标列、制定单元格的数据

from openpyxl import load_workbook# 打开现有的Excel文件
wb = load_workbook("appendix/test_openpyxl.xlsx")# 获取活动的Worksheet
ws = wb.active"""读取行数据
"""
# 读取第二行的数据
second_row = []
for cell in ws[2]:  # ws[2] 表示第二行的单元格对象second_row.append(cell.value)
print("第二行的数据:", second_row)"""读取列数据
"""
# 读取从第一行开始的 从第四列开始至第六列结束的所有数据集(二维列表)
rows = ws.iter_rows(min_row=1, min_col=4, max_col=6, values_only=True)
fourth_column = []
for row in rows:fourth_column.append(row)
print("四五六列的所有数据:", fourth_column)# fourth_column[row][col]
# row:以起始行开始计算的列号,这里相当于1+1=2行
# col:以起始列开始计算的列号,这里相当于4+1=5列
print('第五列第二行数据:', fourth_column[1][1])"""读取精准行列数据
"""
print('第12列第4行数据:', ws.cell(row=4, column=12).value)# 关闭Excel文件
wb.close()

        2、在保持原模板样式不变的条件下变更数据、以及新增样式

from openpyxl import load_workbook# 1. 读取原Excel文件
original_file_path = 'appendix/test.xlsx'
workbook_original = load_workbook(original_file_path)workbook_original_sheet = workbook_original.active# 3. 复制原Excel的内容到新文件
sheet_original = workbook_original.active# 4. 获取M列数据项
column_M = sheet_original['M']# 5. 输出M列的数据项
for index, cell in enumerate(column_M):print(cell.value)# 6. 修改内容(例如修改M3单元格内容)
workbook_original_sheet['M3'] = '通过'# 这是另外一种修改方式,row是指定行,column是指定列 这里表示 3行13列
# workbook_original_sheet.cell(row=3, column=13, value='通过')# 7. 检查M列,若值为 通过则标绿,不通过标红
for index, cell in enumerate(column_M):status = cell.valueif status == "通过":fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")  # 绿色elif status == '不通过':fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")  # 红色else:continuecell.fill = fill# 8. 保存新的Excel文件
new_file_path = 'test_manfish.xlsx'
workbook_original.save(new_file_path)

        创作不易,点个关注行不行 

 

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

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

相关文章

前端面试题25(css常用的预处理器)

在前端开发领域,CSS预处理器在面试中经常被提及,其中最流行的三种预处理器是Sass、LESS和Stylus。下面分别介绍它们的特点和优势: 1. Sass(Syntactically Awesome Style Sheets) 优势: 变量:允…

RK3588开发笔记(四):基于定制的RK3588一体主板升级镜像

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140288662 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

【机器学习】使用决策树分类器预测汽车安全性的研究与分析

文章目录 一、决策树算法简介决策树的结构分类和回归树 (CART)决策树算法术语决策树算法直觉 二、属性选择度量信息增益熵 基尼指数计算分割基尼指数的步骤 三、决策树算法中的过度拟合避免过度拟合的方法 四、导入库和数据可视化探索性数据分析重命名列名查看数据集的总结信息…

python库(8):re库实现字符串处理

1 re库简介 Python 的re库是一个功能强大的正则表达式模块,它允许用户执行各种复杂的字符串匹配和处理任务。 以下是re库的主要功能: 搜索:re.search() 用于搜索字符串中第一次出现的模式。匹配:re.match() 从字符串的开始位置…

ggplot2绘图点的形状不够用怎么办?

群里有这么一个问题: 请问老师,fviz_pca_ind 做pca,当设置geom.ind “point”,group>6时,就不能显示第7,8组的点,应该如何处理(在不设置为文本的情况下),…

go-ext-sm2国密PHP扩展 密文指定排序、识别ans1编码等功能

go-ext-sm2 介绍 基于go-gmsm静态库编写的SM2椭圆曲线公钥密码算法PHP扩展 相较于openssl-ext-sm2编译更方便 增加了密文指定排序、识别ans1编码等功能 特性:非对称加密 git地址:https://gitee.com/state-secret-series/go-ext-sm2.git 软件架构 z…

该让医疗垂类大模型,走出“试题”了

图源:123rf “现阶段,许多医疗垂类大模型就是伪命题,推理能力不行。” 一位观望大模型已久的医疗从业者玄彬(化名)发出了极为尖锐的批评。 在他看来,目前人工智能是靠scaling law涌现的,模型性…

【Icon】矢量图、小图标、logo、资源网站,免费获取

要获取汽车和轮船的UI小图标、矢量图,可以访问以下一些网站,这些网站提供了丰富的图标和矢量图资源,适用于各种设计需求: 1. Flaticon 网站地址:https://www.flaticon.com/ 特点:Flaticon是一个与FreePik同一家公司的网站,专门为设计师找寻免费素材。它提供了大量高质…

【前端】使用chrom浏览器Network,查看前后台数据传输请求

使用chrom浏览器Network查看前后台数据传输请求 写在最前面查看前后台数据传输请求① 首先,打开开发者工具(F12)打开控制台,切换到Network面板。Network面板右键界面copy ②清空请求log ctrle两次或者点击clear图标 案例展示&…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs (上)

一、自定义组件 1、自定义组件 自定义组件,最基础的结构如下: Component struct Header {build() {} } 提取头部标题部分的代码,写成自定义组件。 1、新建ArkTs文件,把Header内容写好。 2、在需要用到的地方,导入…

html——VSCode的使用

快捷键 快速生成标签:标签名tab 保存文件:CtrlS 设置自动保存【文件】→【自动保存】 快速查看网页效果:右击→Open in Default Browser 快捷键:altb 注意:必须安装了open in brows…

转载!abap代码规范

01、在增强里面禁止显式或者隐式提交(ZILOG所在函数如果用在增强里面,不要COMMIT) 02、WAIT、异步RFC,都会触发隐式提交,所以禁止在增强内以及禁止提交的场合使用 03、FOR ALL ENTRIES一定要判断内表是否为空且尽量删除重复,SEL…

软考高级第四版备考--第13天(规划资源管理)Plan Resoure Management

定义:定义如何估算、获取、管理和利用团队以及实物资源的过程。 作用:根据项目类型和复杂程度确定适用与项目资源的管理方法和管理程度 输入:项目章程、项目管理计划(质量管理计划、范围基准)、项目文件(…

域渗透与横向渗透:获取域控制器最高权限的技术与策略

域渗透与横向渗透:获取域控制器最高权限的技术与策略 引言 域控制器是组织网络中的核心组件,负责管理用户账户、安全策略和网络资源访问。横向渗透是攻击者在内网中移动并控制更多系统的过程。获取域控制器的最高权限意味着攻击者可以对整个网络进行操…

windows10下的游戏怎么卸载?

在Windows 10中卸载游戏可以通过多种途径进行,下面是一些常见的方法: 方法一:通过“设置”应用卸载 1. 点击左下角的“开始”按钮,打开“开始”菜单。 2. 选择“设置”图标(齿轮形状)。 3. 在“设置”窗…

2024年5款最佳免费博客程序——对比和测评

多年来,我试用了许多不同的博客网站,并评估了它们在各种需求上的表现。这篇文章记录了我的发现(截至2024年),旨在帮助您为您的项目选择最佳解决方案。 我将介绍五个非常优秀的博客平台,它们让您能够轻松创建…

QTreeWidget 树遍历

在项目中遇到一个问题:需要将QString路径,做成一棵树的样式展示出来。其实倒不是说是问题,只是记录写这块儿的代码的思路 前提:我的所有的QString都是用"/"进行分割的,分割后的list中第一个元素是公共的路径…

知识改变命运 第二集:Java的数据类型与变量

数据类型与变量 1. 字面常量2. 数据类型3. 变量3.1 变量概念3.2 语法格式3.3 整型变量3.3.1 整型变量3.3.2 长整型变量3.3.3 短整型变量3.3.4 字节型变量 3.4 浮点型变量3.4.1 双精度浮点型3.4.2 单精度浮点型 3.5 字符型变量3.6 布尔型变量3.7 类型转换3.7.1 自动类型转换(隐式…

mybatilsplaus 常用注解

官网地址 baomidou注解配置

CATIA二次开发VBA入门(5)——catia文档操作vb.net程序案例,打开catia文件,进行视图操作,退出程序

目录 引出catia文档操作案例1.初始化窗体,始终置顶始终置顶方式2 2.打开文件3.视图切换4.退出5.完整代码 总结认识CATIA二次开发刘瑞欣 vb程序设计教程Excel中的vba开发catia中的vba开发 宏的录制、回放和编辑宏代码精简画圆柱阵列宏Macro文件的3种类型宏的保存&…