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)弹出窗口功能实现。 一、功能描述 在小部件上点击按钮,弹出一个有音源选择列表的弹窗,点击其他位置…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...