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地址&…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...
