Python 操作 Excel,如何又快又好?
➤数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。Python处理Excel 常用的系列库有:xlrd、xlwt、xlutils、openpyxl
◈xlrd - 用于读取 Excel 文件,支持.xls和.xlsx格式
◈xlwt - 用于写入 Excel 文件,只支持.xls格式
◈xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等
◈openpyxl - 既可以读文件、也可以写文件、也可以修改文件;但是,openpyxl 库不支持 xls 格式的Excel文档。
一、安装库的操作
打开cmd,输入命令进行安装:pip install xlwt

打开cmd,输入命令进行安装:pip install xlrd
打开cmd,输入命令进行安装:pip install openpyxl

二、xlwt库使用
◈xlwt - 用于写入 Excel 文件,只支持.xls格式
1.需求:创建一个新的xls文件中写入如下数据,然后保存为login.xls

2.使用xlwt写入数据的步骤
1)导包:import xlwt
2)创建一个文件对象:book=xlwt.Workbook()
3)添加一个sheet工作表:sh1=book.add_sheet(Sheetname)
4)添加内容:sh1.write(row,col,value) #单元格行和列分别从0开始
5)保存文件:book.save(filename)
3.代码实现
# coding = utf-8
import xlwt#创建一个excel文件对象
book = xlwt.Workbook()
#添sheet工作表
sh1 = book.add_sheet('登录数据')
sh1.write(0,0,'用户名') # 在A1单元格写入数据
sh1.write(0,1,'密码') # 在B1单元格写入数据row1 = ['test','test123']
# 结合循环写入一行数据
for i in range(len(row1)): sh1.write(1,i,row1[i])book.save('login.xls') # 保存文件
三、xlrd库使用
◈xlrd - 用于读取 Excel 文件,支持.xls和.xlsx格式
1.需求:读取login.xls文件中指定的单元格、指定行、指定的列或者所有的数据
2.使用xlrd读取数据的步骤
1)导包:import xlrd
2)打开一个文件:book=xlrd.open_workbook(filename)
3)使用sheet工作表:sh1=book.sheet_by_name(sheet_name)
4)读取sheet工作表的属性信息print('sheet总行数',sh1.nrows)print('sheet总列数',sh1.ncols)
5)读取sheet工作表存储的文本内容1)读取一行:row1=sh1.row_values(row) # 行号从0开始2)读取一列:col1=sh1.col_values(col) # 列号从0开始3)读取一个单元格:cell_value=sh1.cell(row,col).value
3.代码实现
# coding = utf-8
import xlrdbook = xlrd.open_workbook('login.xls')
sh1 = book.sheet_by_name('登录数据')
# 读取第一行的数据
row1 = sh1.row_values(0)
print('第一行数据:',row1)# 读取第一列的数据
col1 = sh1.col_values(0)
print('第一列数据:',col1)# 读取指定单元格的数据
cell = sh1.cell(1,1).value
print('A2单元格的值:',cell)# 读取所有的数据
rows = sh1.nrows # 获取当前工作表总的行数
for i in range(rows):print('所有数据打印,第{}行,数据为:{}:'.format(i,sh1.row_values(i)))
4.代码运行结果展示:

四、openpyxl库使用--写入数据
◈openpyxl - 既可以读文件、也可以写文件、也可以修改Excel文件;但是不支持 xls 格式
1.需求:对已存在的test_api.xlsx文件写入接口测试结果,如下图所示

2.使用openpyx写入数据的步骤
1)导包:import openpyxl
2)打开文件:book = openpyxl.load_workbook(filename)
3)使用sheet工作表:sheet = book[sheetname]
4) 单元格写入:sh1['F2'] = 'PASS' 或者 sh1.cell(row,col).value='FAIL' #行和列的索从1开始
6:保存文件:book.save(filename)
3.代码实现
# coding = utf-8
import openpyxl# 打开excel文件
book = openpyxl.load_workbook('test_api.xlsx')
# 通过工作表名字打开工作表
sh1 = book['register']
# 通过单元格的名称写入数据
sh1['I2'] = '不通过'
# 通过单元格的行、列写入数据
sh1.cell(3,9).value = '通过'
# 保存文件
book.save('test_api.xlsx')
五、openpyxl库使用--读取数据
1.需求:读取test_api.xls文件中login工作表指定的单元格、指定行、或者所有的数据
2.使用openpyx读取数据的步骤
1)导包:import openpyxl
2)打开文件:book = openpyxl.load_workbook(filename)
3)使用sheet工作表:sheet = book[sheetname]
4)读取sheet工作表的属性信息返回工作表的最大行数:sheet.max_row返回工作表的的最大列数:sheet.max_column
5)读取sheet工作表存储的文本内容
1)按单元格读取:cell1 = sh1['A1'].value 或者 cell2= sh1.cell(row,col).value #行和列的索引值是从1开始的
2) 按行读取for row in sheet.iter_rows(max_row=3):# 读取前3行数据for cell in row:print(cell.value,end='\t')print()
3.代码实现
# coding = utf-8
import openpyxlbook = openpyxl.load_workbook('test_api.xlsx')
sh1 = book['login']
# 读取单元格数据
cell1 = sh1['A1'].value
print('A1单元格的值为:',cell1)
cell2 = sh1.cell(1,2).value
print('B1单元格的值为:',cell2)# 读取前2行数据
print('读取前2行数据:')
for row in sh1.iter_rows(max_row= 2): # 读取前2行数据for cell in row:print(cell.value,end='\t|\t') # 不换行输出这一行中每个单元格的值print() # 输出完一行之后换行# 读取所有的数据
print('读取所有的数据:')
rows = sh1.max_row # 获取当前工作表总的行数
for row in sh1.iter_rows(max_row=rows): # 读取所有的数据for cell in row:print(cell.value, end='\t|\t') # 不换行输出这一行中每个单元格的值print() # 输出完一行之后换行
4、运行结果

相关文章:
Python 操作 Excel,如何又快又好?
➤数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。Python处理Excel 常用的系列库有:xlrd、xlwt、xlutils、openpyxl ◈xlrd - 用于读取 Exce…...
Spring Redis 启用TLS配置支持(踩坑解决)
由于线上Redis要启用TLS,搜遍了google百度也没一个标准的解决方案,要不这个方法没有,要不那个类找不到...要不就是配置了还是一直连不上redis.... 本文基于 spring-data-redis-2.1.9.RELEASE 版本来提供一个解决方案: 1.运维那边提供过来三个文件,分别是redis.crt redis.key …...
centOS7忘记登录密码该如何重新修改登录密码
文章目录 前言一、重新修改登录密码1.1、第一步1.2、第二步1.3、第三步1.4、第四步1.5、第五步1.6、第六步1.7、第七步1.8、第八步 前言 忘记密码并不可怕,只要学会方法,密码随时都可以找回。 一、重新修改登录密码 1.1、第一步 当打开centOS7之后忘记…...
揭开基于 AI 的推荐系统的神秘面纱:深入分析
人工智能 (AI) 以多种方式渗透到我们的生活中,使日常任务更轻松、更高效、更个性化。人工智能最重要的应用之一是推荐系统,它已成为我们数字体验不可或缺的一部分。从在流媒体平台上推荐电影到在电子商务网站上推荐产品࿰…...
MySQL的事务特性、事务特性保证和事务隔离级别
事务是指要么所有的操作都成功执行,要么所有的操作都不执行的一组数据库操作。 一、MySQL提供了四个事务特性,即ACID: 1. 原子性(Atomicity):一个事务中的所有操作要么全部提交成功,要么全部回…...
shell脚本----函数
文章目录 一、函数的定义1.1 shell函数:1.2函数如何定义 二、函数的返回值三、函数的传参四、函数变量的作用范围五、函数的递归六、函数库 一、函数的定义 1.1 shell函数: 使用函数可以避免代码重复使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更…...
( 位运算 ) 693. 交替位二进制数 ——【Leetcode每日一题】
❓693. 交替位二进制数 难度:简单 给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 示例 1: 输入:n 5 输出:true 解释&#…...
http简述
HTTP(Hypertext Transfer Protocol)是一种用于在Web上传输数据的协议。它是Web的基础,使得我们能够在互联网上访问和共享信息。本文将介绍HTTP的基本概念、工作原理、请求和响应、状态码、安全性和未来发展等方面。 一、HTTP的基本概念 HTT…...
一顿饭的事儿,搞懂了Linux5种IO模型
大家好,我是老三,人生有三大难题,事业、爱情,和 ——这顿吃什么! 人在家中躺,肚子饿得响,又到了不得不吃的时候,这顿饭该怎么吃?吃什么呢? Linux里有五种I…...
C#面向对象的概念
C#面向对象的概念 C#是一种面向对象的编程语言,面向对象编程的核心是将程序中的数据和操作封装在一个对象中。下面是一些面向对象的概念: 类(Class):类是用来描述一类对象的属性和方法的模板或蓝图,它定义…...
探索学习和入门使用GitHub Copilot:提升代码开发的新利器
目录 引言1. 什么是GitHub Copilot?2. 入门使用GitHub Copilot3. GitHub Copilot的基础知识4. GitHub Copilot的应用场景结论 在最近的开发工作中,发现了一个比较实用的工具,github copilot,这是一款基于人工智能的代码助手工具&a…...
在字节跳动做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒
先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。之前没有实习经历,算是6年的工作经验吧。 这6年之间完成了一次…...
常见信号质量问题、危害及其解决方法-信号完整性-过冲、噪声、回勾、边沿缓慢
概述 在电路设计中,“信号”始终是工程师无法绕开的一个知识点。不管是在设计之初,还是在测试环节中,信号质量问题都值得关注。在本文中,主要介绍信号相关的四类问题:信号过冲、毛刺(噪声)、回…...
Java 自定义注解及使用
目录 一、自定义注解1.使用 interface 来定义你的注解2.使用 Retention 注解来声明自定义注解的生命周期3.使用 Target 注解来声明注解的使用范围4.添加注解的属性 二、使用自定义的注解1.将注解注在其允许的使用范围2.使用反射获取类成员变量上的所有注解3.反射获取成员变量上…...
ChatGPT的强化学习部分介绍——PPO算法实战LunarLander-v2
PPO算法 近线策略优化算法(Proximal Policy Optimization Algorithms) 即属于AC框架下的算法,在采样策略梯度算法训练方法的同时,重复利用历史采样的数据进行网络参数更新,提升了策略梯度方法的学习效率。 PPO重要的突…...
JavaWeb ( 八 ) 过滤器与监听器
2.6.过滤器 Filter Filter过滤器能够对匹配的请求到达目标之前或返回响应之后增加一些处理代码 常用来做 全局转码 ,session有效性判断 2.6.1.过滤器声明 在 web.xml 中声明Filter的匹配过滤特征及对应的类路径 , 3.0版本后可以在类上使用 WebFilter 注解来声明 filter-cla…...
Notion Ai中文指令使用技巧
Notion AI 是一种智能技术,可以自动处理大量数据,并从中提取有用的信息。它能够 智能搜索:通过搜索文本和查询结果进行快速访问 自动归档:可以根据关键字和日期自动将内容归档 内容分类:可以根据内容的标签和内容的…...
Linux一学就会——编写自己的shell
编写自己的shell 进程程序替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数 以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动 例程开始执行…...
编程练习【有效的括号】
给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左…...
Android 音频开发——桌面小部件(七)
对于收音机的车机 APP 开发,一般都有配套的桌面小部件(Widget)开发,这里对小部件的具体实现就不介绍了,这里主要介绍一些桌面(Launcher)中的小部件(Widget)弹出窗口功能实现。 一、功能描述 在小部件上点击按钮,弹出一个有音源选择列表的弹窗,点击其他位置…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
