Python-操作Excel表-openpyxl模块使用
openpyxl简介
openpyxl是一个强大的Python库,用于读写Excel(xlsx/xlsm/xltx/xltm)文件。
主要功能和特点如下:
- 读取、修改、写入Excel文件,支持格式如xlsx、xlsm等
- 支持 Excel 2003 以上格式
- 可以很方便地遍历工作表中的行和列
- 获取单元格对象后,可以修改单元格的值、样式、格式等
- 支持公式、图表、样式、筛选等功能
- 可以将Excel数据转换为Python中的字典或列表
- 支持 Pandas 的 DataFrame与Excel文件互相转换
- 支持数据验证、工作表保护、条件格式设置等高级功能
- 支持样式风格、字体设置、对齐方式、颜色渐变等定制格式
- 支持 openpyxl、numpy、pandas、Graphs 等库的集成操作
总之,openpyxl作为Python操作Excel的库,提供了非常丰富和强大的功能,可以满足各种 excel 文档处理的需求,是 Python 处理 excel 最重要的库之一。如果需要用 Python 语言处理 Excel 文件,openpyxl是非常好的选择
openpyxl方法详解
工作簿操作
openpyxl.load_workbook():加载存在的Excel工作簿
openpyxl.Workbook():新建一个Excel工作簿
wb.sheetnames:获取工作簿中的所有工作表名
wb.active:获取或设置工作簿的活动工作表
wb.create_sheet():在工作簿中新建一个工作表
wb.remove_sheet():删除工作簿中的一个工作表
wb.save():保存工作簿到文件
工作表操作
ws = wb[sheetname]:根据名称获取工作表
ws.title:获取或设置工作表标题
ws.max_row:工作表总行数
ws.max_column:工作表总列数
ws.cell(row,column):获取单元格
ws.append():在表尾追加行
ws.insert_rows():在指定位置插入行
ws.delete_rows():删除指定行
ws.merge_cells():合并单元格
单元格操作
cell.value:获取或设置单元格的值
cell.row:单元格的行号
cell.column:单元格的列号
cell.data_type:单元格数据类型
cell.font:获取字体对象,用于样式设置
cell.alignment:获取对齐方式对象
cell.border:获取边框对象
cell.fill:获取背景填充对象
cell.number_format:设置数字格式
cell.hyperlink:为单元格设置超链接
数据操作
ws.iter_rows():迭代工作表行
ws.iter_cols():迭代工作表列
ws.rows:以生成器方式返回所有行
ws.columns:以生成器方式返回所有列
ws.values:以嵌套列表方式返回所有值
ws.formula:读取单元格公式
openpyxl方法示例
工作簿操作
创建工作簿:
wb = openpyxl.Workbook()
获取活动表:
active_sheet = wb.active
创建新表:
new_sheet = wb.create_sheet('New Sheet')
获取所有表名:
sheets = wb.sheetnames
切换活动表:
wb.active = wb['Sheet1']
工作表操作
选择表:
ws = wb['Sheet1']
获取最大行数:
max_row = ws.max_row
获取最大列数:
max_col = ws.max_column
获取单元格:
cell = ws.cell(row=1, column=1)
获取行:
row = ws[1]
获取列:
col = ws['A']
append行:
ws.append([1, 2, 3])
单元格操作
赋值:
cell.value = 'Hello'
转换数据类型:
cell.number_format = 'yyyy-mm-dd'
设置样式:
cell.font = Font(color='00FF0000')
合并单元格:
ws.merge_cells('A1:B3')
调整列宽:
ws.column_dimensions['B'].width = 30
工作簿操作
保存:
wb.save('example.xlsx')
加载:
wb = openpyxl.load_workbook('example.xlsx')
例子
这里是一个使用openpyxl的常见示例:
import openpyxl# 载入Excel文件
wb = openpyxl.load_workbook('example.xlsx')# 获取活动表
ws = wb.active # 读取单元格值
cell_A1 = ws['A1'].value# 修改单元格值
ws['B1'] = 'Hello World'# 遍历表格
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):for cell in row:print(cell.value)# 获取最大列数和行数
print(ws.max_column)
print(ws.max_row)# 保存修改的Excel文件
wb.save('example_modified.xlsx')
这个示例演示了openpyxl的一些常用功能:
- 载入Excel文件
- 获取工作表
- 读取单元格
- 修改单元格
- 遍历工作表
- 获取最大行列信息
- 保存修改后的Excel
openpyxl 在Excel中创建简单工作簿和工作表的示例:
import openpyxl# 创建新的工作簿
wb = openpyxl.Workbook()# 获取默认的工作表
sheet = wb.active # 修改默认工作表标题
sheet.title = '第一页'# 创建一个新的工作表
wb.create_sheet('第二页') # 在第一页A1单元格输入数据
sheet['A1'] = 'Hello World!'# 在第二页A1单元格输入数据
wb['第二页']['A1'] = 'Hello World!' # 保存Excel文件
wb.save('demo.xlsx')
这个简单的示例做了以下操作:
- 创建新的工作簿
- 修改默认工作表的标题
- 创建新的工作表
- 在两个工作表的A1单元格写入数据
- 保存工作簿为Excel文件
就可以用几行代码通过openpyxl创建一个带有多sheet的Excel工作簿。我们可以继续往工作表中添加数据、格式等来生成更丰富的Excel文件。
相关文章:
Python-操作Excel表-openpyxl模块使用
openpyxl简介 openpyxl是一个强大的Python库,用于读写Excel(xlsx/xlsm/xltx/xltm)文件。 主要功能和特点如下: 读取、修改、写入Excel文件,支持格式如xlsx、xlsm等支持 Excel 2003 以上格式可以很方便地遍历工作表中的行和列获取单元格对象后,可以修改单元格的值、样式、格式…...
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
1、注册https://issues.sonatype.org/账号 下面就代表注册好了,同时提交的工单也通过了 2、这里主要是goupId 需要进行认证,需要到域名注册商近一个txt的解析,以便确保这个是你的 通过下面来验证你的域名信息,这里主要是上面的工…...
【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录
本文主要介绍如下内容: 关于几个Block类之间的继承、实现关系;针对文章标题中的每个类,细化到每个成员去注释分析列出、并详细分析BlockInfo抽象类提供的抽象方法、非抽象方法的功能针对几个跟块组织结构的方法再进行分析。moveBlockToHead、listInsert、listRemove等。一、…...
STM32 LoRa(学习二)
LoRa关键参数说明 LoRa数据包由三个部分组成:前导码、可选报头、数据有效负载。 前导码:用于保持接收机与输入的数据流同步。默认情况下,数据包含有12个符号长度的前导码。前导码是一个可以通过编程来设置的变量,所以前导码的长度…...
ASP.NET Core学习路线图
说明 1. 先决条件 - [C#](https://www.pluralsight.com/paths/csharp) - [Entity Framework](https://www.pluralsight.com/search?qentity%20framework%20core) - [ASP.NET Core](https://www.pluralsight.com/search?qasp.net%20core) - SQL基础知识 2. 通用开发技能 -…...
无涯教程-Lua - for语句函数
for 循环是一种重复控制结构,可让您有效地编写需要执行特定次数的循环。 for loop - 语法 Lua编程语言中 for 循环的语法如下- for init,max/min value, increment dostatement(s) end 这是 for 循环中的控制流程- 首先执行 init 步骤,并且仅执行一…...
二叉树的相关题目
目录 1、根据二叉树创建字符串 2、二叉树的层序遍历 3、二叉树的最近公共祖先 4、搜索二叉树与双向链表 5、从前序与中序遍历序列构造二叉树 6、 从中序与后序遍历序列构造二叉树 7、二叉树的前序遍历(非递归实现) 8、二叉树的中序遍历(…...
【antd之tabs踩坑篇】Tabs有items时切换不起作用
<TabsdefaultActiveKey"1"tabPosition{mode}style{{ height: 220 }}items{new Array(30).fill(null).map((_, i) > {const id String(i);return {label: Tab-${id},key: id,disabled: i 28,children: Content of tab ${id},};})}/>官网上如果tabs有很多it…...
简单模拟livedata数据倒灌
简单模拟livedata数据倒灌 数据倒灌,就是将旧的或只展示一次的数据再次展现出来。 livedata内部通过版本号更新可见视图数据,而在view在活跃与不活跃之间反复横跳时,livedata也会通知数据。 class MainActivity : AppCompatActivity() {pri…...
python爬虫-加速乐cookie混淆解析实例小记
注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!! 第一步:抓包工具第一次请求页面,得到响应。本次我使用的fiddle进行抓包&#…...
TensorFlow 中前缀 prefix
前缀 prefix 主要用于命名 TensorFlow 中的变量,以避免变量名冲突。在 TensorFlow 中,每个变量都有一个唯一的名称,由变量的作用域和变量的名称组成。作用域可以通过 tf.variable_scope() 函数来创建,而变量的名称通常是由用户指定…...
SystemVerilog scheduler
文章目录 简介调度器simulation regionPreponed regionActive regionInactive regionNBA(Non-blocking Assignment Events region)Observed regionReactive regionRe-Inactive Events regionRe-NBA RegionPostponed Region PLI region:Pre-active regionPre-NBA regionPost-NBA…...
Qt 5. QSerialPort串口收发
1. 代码 //ex2.cpp #include "ex2.h" #include "ui_ex2.h" #include <QtSerialPort/QSerialPort> #include <QtSerialPort/QSerialPortInfo>int static cnt 0;Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi…...
什么是Java中的JVMTI(JVM Tool Interface)?
Java中的JNI(Java Native Interface)和JVMTI(JVM Tool Interface)都是与Java运行时环境(JVM)交互的工具,但它们有不同的目的和使用场景。下面我从新手的角度来幽默地解释一下它们的区别和用途。…...
WAF独木难支 RASP与ADR将成应用安全防护2.0时代新宠
曾几何时,黑客攻击大多通过网络层进行,但随着基于网络层的基础安全防护措施趋于严密,防火墙、入侵防御、防病毒等安全软硬件构建起了相对完善的防护体系,想再从网络层钻空子的难度增大。如今,黑客攻击从网络层转入Web为…...
四、Unity中颜色空间
Unity中的设置 通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改,参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时,Unity不会做任何处理。当选择Linear Space时,引擎的渲染…...
Java程序员面试题
Java程序员面试题目 1.Java基础1.1 Java有list,list有很多种,你平时开发喜欢用哪个list?(容易)1.2 Java的map,你知道有哪几种map,你平时喜欢用哪个?(容易) 2.…...
【自动化剧本】Role角色
目录 一、Roles模块1.1roles的目录结构1.2roles 内各目录含义解释1.3在一个 playbook 中使用 roles 的步骤 二、使用Role编写LNMP剧本2.1 搭建Nginx角色2.2搭建Mysql角色2.3搭建php角色2.4lnmp剧本 一、Roles模块 roles用于层次性、结构化地组织playbook。roles能够根据层次型结…...
安全文件传输:如何避免数据泄露和黑客攻击
网络安全问题日益严重,导致许多数据被泄露和黑客袭击的事件频发。为了保证文件传输的安全,需要实施一系列安全文件传输策略来防止数据被泄露和黑客袭击。 第一、选择适合的加密方法是非常关键的 加密是一种将明文转换成密文的过程,这样只有授…...
web基础与http
一,dns与域名 网络基于tcp/ip协议进行通信和连接的,其中主机以ip地址做固定的地址标识,用以区分用户和计算机。ip地址是由32位二进制数组成,不方便记忆。为了方便记忆,采用了域名。但是网络通信的唯一标识是ip地址&…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
