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.rhkb.cn/news/3386.html

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

相关文章

【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)

文章目录 一、产品简介二、漏洞描述三、影响版本四、漏洞检测方法五、解决方案 一、产品简介 FortiOS是Fortinet公司核心的网络安全操作系统,广泛应用于FortiGate下一代防火墙,为用户提供防火墙、VPN、入侵防御、应用控制等多种安全功能。 FortiProxy则…

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

1、通感融合定义和场景(阅读) 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理(较难,理解即可) 2.1 感知方式 2.2 通感融合架构 SF(Sensing Function):核心网感知控制…

头盔识别技术

本项目参考b站视频https://www.bilibili.com/video/BV1EhkiY2Epg/?spm_id_from333.999.0.0&vd_source6c722ac1eba24d4cbadc587e4d1892a7 1.下载miniconda 使用 Miniconda 来管理 Python 环境(如 yolov8),就可以通过 conda create -n y…

某讯一面,感觉问Redis的难度不是很大

前不久,有位朋友去某讯面试,他说被问到了很多关于 Redis 的问题,比如为什么用 Redis 作为 MySQL 的缓存?Redis 中大量 key 集中过期怎么办?如何保证缓存和数据库数据的一致性?我将它们整理出来,…

PCL 新增自定义点类型【2025最新版】

目录 一、自定义点类型1、前言2、定义方法3、代码示例二、合并现有类型三、点云按时间渲染1、CloudCompare渲染2、PCL渲染博客长期更新,本文最近更新时间为:2025年1月18日。 一、自定义点类型 1、前言 PCL库自身定义了很多点云类型,但是在使用的时候时如果要使用自己定义的…

R语言绘图

多组火山图 数据准备&#xff1a; 将CSV文件同一在一个路径下&#xff0c;用代码合并 确保文件列名正确 library(fs) library(dplyr) library(tidyr) library(stringr) library(ggplot2) library(ggfun) library(ggrepel)# 获取文件列表 file_paths <- dir_ls(path &quo…

ICC和GCC编译器编译Openmp程序的运行区别

1、背景介绍 硬件和隔核设置&#xff1a; Intel E5 V4 14核。 配置 isolcpus2,3,4,5,6,7,8,9,10,11,12,13&#xff0c;隔离了 12 个核心&#xff0c;仅保留核心 0 和核心 1 作为普通调度核心。 操作系统 湖南麒麟3.3-3B OpenMP并行配置&#xff1a; 使用核心 4 到核心 …

改进果蝇优化算法之一:自适应缩小步长的果蝇优化算法(ASFOA)

自适应缩小步长的果蝇优化算法(ASFOA)是对传统果蝇优化算法的一种重要改进,旨在克服其后期种群多样性不足、容易过早收敛和陷入局部最优等问题。有关果蝇优化算法的详情可以看我的文章:路径规划之启发式算法之二十七:果蝇优化算法(Fruit Fly Optimization Algorithm,FOA…

ubuntu22.04安装注意点

换源方式 22.04默认使用/etc/apt/sources.list而非/etc/apt/sources.list.d # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse # deb-src https…

C#表达式和运算符

本文我们将学习C#的两个重要知识点&#xff1a;表达式和运算符。本章内容会理论性稍微强些&#xff0c;我们会尽量多举例进行说明。建议大家边阅读边思考&#xff0c;如果还能边实践就更好了。 1. 表达式 说到表达式&#xff0c;大家可能感觉有些陌生&#xff0c;我们先来举个…

LARGE LANGUAGE MODELS ARE HUMAN-LEVEL PROMPT ENGINEERS

题目 大型语言模型是人类级别的提示工程师 论文地址&#xff1a;https://arxiv.org/abs/2211.01910 项目地址&#xff1a;https://github.com/keirp/automatic_prompt_engineer 摘要 通过对自然语言指令进行调节&#xff0c;大语言模型 (LLM) 显示了作为通用计算机的令人印象深…

基础入门-反弹Shell渗透命令Reverse反向Bind正向利用语言文件下载多姿势

知识点&#xff1a; 1、反弹Shell-项目&命令&语言等 2、系统渗透命令-网络&文件&操作等 一、演示案例-反弹Shell-自带命令&语言代码&三方项目 1、反弹Shell的前提条件 已知存在的漏洞利用或执行命令的地方 2、为什么要反弹Shell? 往往由于很多因…

AI在SEO中的关键词优化策略探讨

内容概要 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正逐渐重塑搜索引擎优化&#xff08;SEO&#xff09;行业。AI技术的快速发展使得SEO策略发生了翻天覆地的变化&#xff0c;特别是在关键词优化方面。关键词优化的基本概念是通过选择与用户搜索意图密…

DeepSeek-v3在训练和推理方面的优化

1. 基础架构&#xff1a;MLA&#xff0c;大幅减少了KV cache大小。&#xff08;计算量能不能减少&#xff1f;&#xff09; 2. 基础架构&#xff1a;MoE&#xff0c;同等参数量&#xff08;模型的”能力“&#xff09;下&#xff0c;训练、推理的计算量大幅减少。 3. MoE的load…

【从0带做】基于Springboot3+Vue3的心理健康预约平台

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的心理健康预约平台&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 项目演示视频和教程视频 https:…

Mybatis 进阶 / Mybatis—Puls (详细)

目录 一.动态SQL 1.1标签 1.2 标签 1.3标签 1.4标签 1.5标签 1.6标签 mybatis总结&#xff1a; 二.Mybatis-Puls 2.1准备工作 2.2CRUD单元测试 2.2.1创建UserInfo实体类 2.2.2编写Mapper接⼝类 2.2.3 测试类 2.3 常见注解 2.3.1TableName 2.3.2TableField 2.4打印日…

2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法

题目来源&#xff1a;攻防世界supersqli 目录 一、打开靶机&#xff0c;整理已知信息 二、sqlmap解题 step 1&#xff1a;爆数据库 step 2&#xff1a;爆表 二、手工注入解题 step 1&#xff1a;判断注入类型 step 2&#xff1a;判断字段数 step 3&#xff1a;查询数据…

【数据库初阶】MySQL中表的约束(上)

??博主首页&#xff1a; ??专栏首页&#xff1a; 数据库初阶 ??其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们&#xff0c;大家好&#xff01;在这篇文章中&#xff0c;我们将深入浅出地为大家讲解 MySQL中表的约束 帮助您轻松入门&#xff0c;快…

HTML基础与实践

目录 HTML 结构 认识 HTML 标签 HTML 文件基本结构 标签层次结构 快速生成代码框架 HTML 常见标签 注释标签 标题标签: h1-h6 段落标签: p 换行标签: br 格式化标签 图片标签: img 超链接标签: a ​编辑链接的几种形式: 表格标签 基本使用 合并单元格 …

初识go语言之指针用法

一、环境准备 安装go语言编译环境&#xff0c;官网地址&#xff1a;https://go.dev/dl/ 或者 https://golang.google.cn/dl/ 点击下载按提示安装即可 vscode 安装go语言扩展 测试 package mainimport "fmt"func main() {fmt.Println("Hello, World!") …