Python操作Excel——openpyxl使用笔记(3)

3 单元格基本操作


3.1 访问单元格和读写其内容

在前面的例子中,已经简单演示过了向单元格中写入和读取数据。这里进一步提供访问单元格的一些方法。和前面一样,使用工作表的索引方式,可以快速定位一个单元格:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.active
cell0=ws['B2']
cell0.value="openpyxl"
wb.save('./test.xlsx')
wb.close()

运行后,在活动工作表的B2中会写入数据:

另外一种方式就是使用工作表的cell函数定位一个单元格,它接受行和列作为参数,返回对应位置的单元格,注意计数的基数是从1开始的,而不是0,测试代码如下:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.active
cell1=ws.cell(row=2,column=3)
cell1.value="new method"
wb.save('./test.xlsx')
wb.close()

显然cell1是第二行第三列,也就是C3,执行脚本后效果如下:

通过单元格的value属性,设置或者读取其中的值。


3.2 获取单元格的行数和列数

有时需要获取一张工作表中,包含了多少行和多少列有效数据,这个时候可以使用工作表的属性max_row和max_column,以及min_row和min_column,这四个值返回的都是整数,表示包含有效数据的最大、最小行或者列。
例如,一个工作表中有如下的内容:

则min_row返回4,min_column返回3,max_row返回10,max_column返回7,如下代码所示:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.active
print(f'Min Row: {ws.min_row}')             # 4
print(f'Min Column: {ws.min_column}')       # 3
print(f'Max Row: {ws.max_row}')             # 10
print(f'Max Column: {ws.max_column}')       # 7
wb.close()

3.3 范围单元格操作

可以按列或者行进行遍历某个范围内的所有单元格,以先列后行的方式:

import openpyxl
wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
x=0
for col in ws.iter_cols(min_col=3, max_col=7, min_row=4, max_row=6):for cell in col:cell.value=xx+=1
wb.save('./test.xlsx')
wb.close()

脚本运行后内容如下:

如果使用iter_rows,则是先遍历行,再遍历列:

import openpyxl
wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
x=0
for row in ws.iter_rows(min_row=2, max_row=6, min_col=1, max_col=4):for cell in row:cell.value=xx+=1
wb.save('./test.xlsx')
wb.close()

脚本运行后内容如下:


3.4 删除行或列

使用工作表的del_rows可以删除连续的1行或多行,对于列是使用函数del_columns,例如,打开一个空白的test.xlsx文件,填充10行,然后删除5~6行:

wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
for i in range(1, 11):ws.cell(row=i, column=1).value = i
ws.delete_rows(5, 2)
wb.save('./test.xlsx')
wb.close()

运行效果如下:

 如果只删除一行,则第二个参数可以省略。对于列的删除操作,也是类似的,这里就不通过脚本演示了。


3.5 插入行或列

向工作表中插入行或者列,可以使用insert_rows或者insert_cols,这两个函数会在指定行前面插入一定数量的行或者列。例如,打开一个空白的test.xlsx文件,填充10行,然后在第3行前面插入2行:

import openpyxl
wb = openpyxl.load_workbook('./test.xlsx')
ws = wb.active
for i in range(1, 11):ws.cell(row=i, column=1).value = i
ws.insert_rows(3, 2)
wb.save('./test.xlsx')
wb.close()

脚本运行效果如下:

可以看到在原来的第三行之前插入了两行,对于列也是类似的,此处从略。

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

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

相关文章

2025.1.18机器学习笔记:PINN文献精读

第三十周周报 一、文献阅读题目信息摘要Abstract创新点物理背景网络框架实验实验一:直道稳定流条件实验二:环状网络中的非稳定流条件 结论缺点及展望 二、代码实践总结 一、文献阅读 题目信息 题目:《Enhanced physics-informed neural net…

【学习笔记】Macbook管理多个不同的Python版本

在MacBook上管理不同项目的不同Python版本,可以使用多种方法。以下是一些常见的方法: 1. 使用 pyenv pyenv 是一个非常流行的工具,可以让你轻松安装和切换多个Python版本。以下是安装和使用 pyenv 的步骤: 安装 pyenv 安装依赖…

redhat安装docker 24.0.7

1、下载docker镜像包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz 2、解压 tar -xvf docker-24.0.7.tgz 3、解压的docker文件夹全部移动至/usr/bin目录 cd docker cp -p docker/* /usr/bin 4、注册服务 vi /usr/lib/systemd/syste…

CSS 的基础知识及应用

前言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现,使页面不仅实现功能,还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Linux shell zip 命令实现不切换当前终端的工作目录打包另一个路径下的文件和文件夹

如图&#xff0c;我想在当前目录 ~/Bypasser 下打包 src 文件夹&#xff0c;使得生成的 zip 压缩包中具有 src 文件夹下的所有文件夹、所有文件夹中的所有子项目、所有文件&#xff0c;保留层次结构但压缩包中最外面不包含 src 这一层。执行命令时&#xff0c;不要改变当前终端…

Syncthing在ubuntu下的安装使用

以前安装这个软件的时候&#xff0c; 是在windows和mac上&#xff0c;都是图形化的安装方式&#xff0c;但是ubuntu不太一样&#xff0c;需要增加源&#xff0c;然后执行命令。安装的系统版本是2004。 参考链接1&#xff0c;主要命令包含下面几个部分&#xff1a; 第一步&…

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一&#xff0c;基本概念 二&#xff0c;connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三&#xff0c;自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四&#xff0c;信号和槽的意义 五&#xff0c;信号和槽断开连接 六&…

聊聊如何实现Android 放大镜效果

一、前言 很久没有更新Android 原生技术内容了&#xff0c;前些年一直在做跨端方向开发&#xff0c;最近换工作用重新回到原生技术&#xff0c;又回到了熟悉但有些生疏的环境&#xff0c;真是感慨万分。 近期也是因为准备做地图交互相关的需求&#xff0c;功能非常复杂&#x…

基于基础模型的下一代商业智能(BI)

IBM Cognos Analytics 长期以来一直被公认为商业智能&#xff08;BI&#xff09;领域的金标准。凭借其卓越的报告功能而闻名&#xff0c;IBM Cognos 为希望从数据中提取宝贵见解的组织提供了无与伦比的深度和灵活性。 但很多人可能不知道的是&#xff0c;Cognos Analytics 是如…

Python与PyTorch的浅拷贝与深拷贝

1.Python赋值操作的原理 在python中&#xff0c;x something&#xff0c; 这样的赋值操作&#xff0c;准确的理解是&#xff1a;给存储something建立一个索引x (即存储地址)&#xff0c; x通过访问something的存储内容&#xff0c;获得something的值。 在下面代码中&#xff…

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…

golang标准库path/filepath使用示例

文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…

HBase实训:纸币冠字号查询任务

一、实验目的 1. 理解分布式数据存储系统HBase的架构和工作原理。 2. 掌握HBase表的设计原则&#xff0c;能够根据实际业务需求设计合理的表结构。 3. 学习使用HBase Java API进行数据的插入、查询和管理。 4. 实践分布式数据存储系统在大数据环境下的应用&#xff0c;…

HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (三、影视搜索页功能实现)

在HarmonyOS NEXT开发环境中&#xff0c;可以使用nutpi/axios库来简化网络请求的操作。本文将展示如何使用HarmonyOS NEXT框架和nutpi/axios库&#xff0c;从零开始实现一个简单的影视APP&#xff0c;主要关注影视搜索页的功能实现。 为什么选择nutpi/axios&#xff1f; nutpi…

网络IO与IO多路复用

一、网络IO基础 系统对象&#xff1a; 网络IO涉及用户空间调用IO的进程或线程以及内核空间的内核系统。例如&#xff0c;当进行read操作时&#xff0c;会经历两个阶段&#xff1a; 等待数据准备就绪。将数据从内核拷贝到进程或线程中。 多种网络IO模型的出现原因&#xff1a;…

天机学堂3-ES+Caffeine

文章目录 day05-问答系统表 用户端分页查询问题目标效果代码实现 3.6.管理端分页查询问题ES相关 管理端互动问题分页实现三级分类3.6.5.2.多级缓存3.6.5.3.CaffeineTODO&#xff1a;使用Caffeine作为本地缓存&#xff0c;另外使用redis或者memcache作为分布式缓存&#xff0c;构…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…

智能新浪潮:亚马逊云科技发布Amazon Nova模型

在2024亚马逊云科技re:Invent全球大会上&#xff0c;亚马逊云科技宣布推出新一代基础模型Amazon Nova&#xff0c;其隶属于Amazon Bedrock&#xff0c;这些模型精准切入不同领域&#xff0c;解锁多元业务可能&#xff0c;为人工智能领域带来革新。 带你认识一起了解Amazon Nova…

flutter 装饰类【BoxDecoration】

装饰类 BoxDecoration BoxDecoration 是 Flutter 中用于控制 Container 等组件外观的装饰类&#xff0c;它提供了丰富的属性来设置背景、边框、圆角、阴影等样式。 BoxDecoration 的主要属性 1.color 背景颜色。类型&#xff1a;Color?示例&#xff1a; color: Colors.blu…