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

2.    操作工作表

前面提到一个工作簿中会有一个或者多个工作表,当前使用的工作表被称作活动工作表,这里展开介绍一下对于工作表的一些操作。


2.1 枚举所有工作表

使用for循环可以很方便的遍历每个工作表:

import openpyxl
wb = openpyxl.open('./test.xlsx')
for sheet in wb:print(sheet.title)
wb.close()

另外一种方式是使用工作簿的sheetnames属性,该属性返回一个列表,包含了所有工作表的名称。

import openpyxl
wb = openpyxl.open('./test.xlsx')
print(wb.sheetnames)
wb.close()

2.2 创建工作表

在工作簿中可以使用create_sheet创建工作表,例如:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.create_sheet('new_sheet')
print(wb.sheetnames)
wb.save('./test.xlsx')
wb.close()

有趣的问题:如果创建两个同名工作簿呢?

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.create_sheet('dumplicate_sheet')
ws=wb.create_sheet('dumplicate_sheet')
print(wb.sheetnames)
wb.save('./test.xlsx')
wb.close()

执行这个脚本的效果是:
['by_python', 'dumplicate_sheet', 'dumplicate_sheet1']

可以看到,对于同名的工作表,会在后面加上数字。


2.3 复制工作表

有时,我们创建的工作表,可以作为一个模版文件,生成多个同样的工作表。可以使用工作簿的copy_worksheet函数,以某个工作表作为模版创建新的工作表:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws = wb['by_python']
for i in range(1, 6):new_sheet = wb.copy_worksheet(ws)new_sheet.title='new_sheet'+str(i)
wb.save('./test.xlsx')
wb.close()

运行脚本效果如下:

可以看到,创建了5个新的工作表,每个工作表的A1单元格和by_python工作表的A1单元格内容是相同的。


2.4 删除工作表

使用工作簿的remove函数删除工作表,注意删除以后需要保存才能生效。

import openpyxl
wb = openpyxl.open('./test.xlsx')
#suppose we want to delete the sheet named 'dumplicate_sheet1'
wb.remove(wb['dumplicate_sheet1'])
wb.save('./test.xlsx')
wb.close()

注意:如果试图删除一个工作簿中不存在的工作表,会产生异常,例如:

import openpyxl
wb = openpyxl.open('./test.xlsx')
wb.remove(wb['not_exist_sheet'])
wb.save('./test.xlsx')
wb.close()

会产生异常:
KeyError: 'Worksheet Sheet2 does not exist.'
不能删除当前的工作表,例如:

import openpyxl
wb = openpyxl.open('./test.xlsx')
wb.remove(wb.active.title)
wb.save('./test.xlsx')
wb.close()

会产生异常:
ValueError: 'by_python' is not in list
虽然用wb.sheetnames可以看到该工作表在工作簿中,但是值异常显示不在列表中,因此,工作簿中至少要有一个工作表。


2.5 获取工作表对象

使用工作簿的get_sheet_by_name函数可以获得一个工作表对象:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb.get_sheet_by_name('by_python')
ws['A1'].value='test'
wb.save('./test.xlsx')
wb.close()

运行效果如下:

不过这种方式过时了,代码会警告:
DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
  ws=wb.get_sheet_by_name('by_python')

更简单便捷的方式是使用索引:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb['by_python']
ws['A1'].value='test'
wb.save('./test.xlsx')
wb.close()

2.6 修改工作表的颜色

工作表的一些属性,可以通过properties设置,例如修改工作表的颜色:

import openpyxl
from openpyxl.styles import Color
wb = openpyxl.open('./test.xlsx')
ws=wb.create_sheet('color_sheet')
ws.sheet_properties.tabColor = "FF0000"
wb.save('./test.xlsx')
wb.close()

可以看到工作表颜色变成了红色。


2.7 隐藏和显示工作表

以刚才创建的工作表为例,将其隐藏:

import openpyxl
wb = openpyxl.open('./test.xlsx')
ws=wb['color_sheet']
ws.sheet_state = 'hidden'
wb.save('./test.xlsx')
wb.close()

使用Excel打开工作表,可以看到下方并没有显示该工作表,在任何一个工作表上单击右键,选择取消隐藏,就可以看到被脚本隐藏的工作表了:

另外两个可选的参数是“visible”和“veryhidden”,前者设置工作表可见,而后者设置为深度隐藏,在这种情况下,使用Excel就无法使其显示出来了。

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

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

相关文章

Social LSTM:Human Trajectory Prediction in Crowded Spaces | 文献翻译

概要 行人遵循不同轨迹以避免障碍物和容纳同行者。任何在这种场景中巡航的自动驾驶车辆都需要能够遇见行人的未来位置并相应地调整其路线以避免碰撞。轨迹预测问题能够被看作一个顺序生成任务,其中我们对基于行人过去的位置预测其未来的轨迹感兴趣。根据最近RNN&am…

从零开始:Gitee 仓库创建与 Git 配置指南

引言 Git 是一款广泛使用的版本控制工具,它能够帮助开发者在开发过程中高效地管理代码的版本。而 Gitee(码云)是国内知名的 Git 托管平台,它提供了强大的代码托管、团队协作和项目管理功能。如果你是 Git 和 Gitee 的新手&#x…

挖掘机检测数据集,准确识别率91.0%,4327张原始图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注

挖掘机检测数据集,准确识别率91.0%,4327张图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注 数据集详情 数据集分割 训练组70% 3022图片 有效集20% 870图片 测试集10&…

CV 图像处理基础笔记大全(超全版哦~)!!!

一、图像的数字化表示 像素 数字图像由众多像素组成,是图像的基本构成单位。在灰度图像中,一个像素用一个数值表示其亮度,通常 8 位存储,取值范围 0 - 255,0 为纯黑,255 为纯白。例如,一幅简单的…

QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能

文章目录 效果图概述功能点代码分析导航栏表格更新视图表格导出表格过滤 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作。数据库的映射,插入等功能看此博客框架:数据模型使用QSqlTableModel,视图使用QTableView&#xff0…

UI自动化测试:异常截图和page_source

自动化测试过程中,是否遇到过脚本执行中途出错却不知道原因的情况?测试人员面临的不仅是问题的复现,还有对错误的快速定位和分析。而异常截图与页面源码(Page Source)的结合,正是解决这一难题的利器。 在实…

Spark常见面试题-部分待更新

1. 简述hadoop 和 spark 的不同点(为什么spark更快) Hadoop是一个分布式管理、存储、计算的生态系统,包括HDFS(分布式文件系统)、MapReduce(计算引擎)和YARN(资源调度器)…

HackMyVM-Klim靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 CVE-2008-0166 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.159.127) 靶 机:debian(192.168.159.27) 注意事…

数据结构题目 课时6

题目 1、设一棵树的度是 4,其中度为 0, 1, 2, 3, 4 的结点个数分别是 8, 4, 2, 1 和( )。 A. 4 B. 3 C. 2 D. 1 2、设一棵 m 叉树中有 N₁个度数为 1 的结点,N₂个度数为 2 的结点,……,Nₘ个度…

Linux下源码编译安装Nginx1.24及服务脚本实战

1、下载Nginx [rootlocalhost ~]# wget -c https://nginx.org/download/nginx-1.24.0.tar.gz2、解压 [rootlocalhost ~]# tar xf nginx-1.24.0.tar.gz -C /usr/local/src/3、安装依赖 [rootlocalhost ~]# yum install gcc gcc-c make pcre-devel openssl-devel -y4、 准备 N…

Web前端------表单标签

一.表单标签介绍 1.认识表单 表单---类似于日常生活中的申请单 都是去填写一些信息去申请某个功能&#xff0c;例如&#xff1a;账号密码昵称&#xff0c;登陆网站 2.常见标签 常见的标签 <form></form> 表单标签&#xff0c;所有表单信息都包含在这个标签内…

LLM - 大模型 ScallingLaws 的迁移学习与混合训练(PLM) 教程(3)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145212097 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

Unity2017 控制.abc格式的三维动画播放

首先需要导入插件Alembic&#xff0c;否则导入abc动画&#xff0c;Unity是不会识别的。 Unity2017版本及以下直接从我这儿下载&#xff1a;https://download.csdn.net/download/qq_41603955/90272382 高版本Unity&#xff0c;请移步AssetStore商店搜找。 导入abc之后&#x…

【视觉惯性SLAM:十七、ORB-SLAM3 中的跟踪流程】

17.1 跟踪流程流程图 ORB-SLAM3 的跟踪模块是整个系统的重要组成部分&#xff0c;负责实时确定相机在三维空间中的姿态位置&#xff0c;并保持关键帧之间的连续性。其基本目标是将输入的视频流与已有地图数据进行对齐&#xff0c;完成位姿估计和地图更新。 流程图概述 一个…

开发神器之cursor

文章目录 cursor简介主要特点 下载cursor页面的简单介绍切换大模型指定ai学习的文件指定特定的代码喂给ai创建项目框架文件 cursor简介 Cursor 是一款专为开发者设计的智能代码编辑器&#xff0c;集成了先进的 AI 技术&#xff0c;旨在提升编程效率。以下是其主要特点和功能&a…

CSRF攻击XSS攻击

概述 ​在 HTML 中&#xff0c;<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址&#xff0c;而所谓的跨域请求就是指&#xff1a;当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指…

cuda + cudnn安装

1.安装CUDA Toolkit 在设备管理器&#xff08;此电脑–右键–属性&#xff09;的显示适配器中可以查看自己的显卡型号&#xff0c;去下载对应的CUDA Toolkit 。或者输入以下命令查看Driver Version &#xff0c;cuda Version&#xff1a;12.2代表12.2版本以下兼容可以进行安装 …

vscode 设置

一、如何在vscode中设置放大缩小代码 1.1.文件—首选项——设置 1.2.在搜索框里输入“Font Ligatures”&#xff0c;然后点击"在settings.json中编辑" 1.3.在setting中&#xff08;"editor.fontLigatures":前&#xff09;添加如下代码 "editor.mous…

海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”

2024年12月27日&#xff0c;粤港澳大湾区AI领袖峰会在深圳成功举办&#xff0c;大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人&#xff0c;深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时&#xff0c;公…

网络安全---CMS指纹信息实战

CMS简介 CMS&#xff08;Content Management System&#xff09;指的是内容管理系统&#xff0c;如WordPress、Joomla等。CMS系统非常常见&#xff0c;几乎所有大型网站都使用CMS来管理其网站的内容。由于常见CMS的漏洞较多&#xff0c;因此黑客将不断尝试利用这些漏洞攻击CMS…