操作excel的第三方库有:xlrd,xlwt, openpyxl,pandas
excel后缀:xls, xlsx
excel操作3个概念:
工作薄 workbook - 打开一个excel文件
表单 :sheet
单元格 :cell

pip安装第三方库

1、安装第三方库:pip
自动安装在Lib\site-packages
1、安装包:pip install 库名
2、卸载包:pip uninstall 库名
3、升级包:pip install -U 库名
4、如果要安装指定的版本号:pip install 库名==版本号

配置国内源:https://www.runoob.com/w3cnote/pip-cn-mirror.html

4、查看当前pip版本:pip --version
5、列出已安装的包:pip list
6、生成requirements.txt:pip freeze > requirements.txt 把本地的所有第三方库的东西都生成到这个文件中
7、安装requirements.txt:pip install -r requirements.txt 另外一台设备执行这个命令就可以获取到该项目所用的所有第三方库

从excel中读取到数据,

从excel当中读取出来的数据呢,
读取一个表单当中所有的数据
1、如果单元格当中只有数字,就会转成整数类型, 数字太长会转成字符串
2、如果单元格当中只有TRUE、FALSE,就会转成布尔值类型
3、如果单元格当中只有时间格式,比如2021/08/07,就会转成datetime类型。
4、如果单元格当中没有编辑数据,则会转成None。

一、openpyxl

搜索第三方库链接:https://pypi.org/

1、安装

pip install openpyxl

2、了解excel的操作步骤

  • 找到目标excel
  • 打开
  • 读取数据、编辑excel单元格
  • 保存
  • 关闭

3、openpyxl操作excel

  • 创建wb对象(找到excel并打开它)
  • 找到Sheet对象(既要找到操作的工作簿)
  • 找到要操作的单元格
  • 读取数据、修改数据
  • 保存、关闭

4、openpyxl支持的excel的格式

  • xlsx
  • xlsm
  • xltx
  • xltm

5、openpyxl的基本操作类

  • Workbook:相当于一个文件夹-工作簿
  • WorkSheet:相当于文件里面每个具体的表
  • 比如新建Excel文件里面的’Sheet1’这个,一个Workbook里面有一个或多个WorkSheet.
 1、读取已经存在的excel数据文件 导入 from openpyxl import load_workbook
2、创建一个excel数据文件,在里面写好你的测试数据。
3、加载一个指定的excel文件:wb = load_workbook(excel文件的路径)
4、选择一个表单。-- 通过表单名称。sh = wb['表单名称']
5、选择一个单元格。 -- 行号和列号从1开始。sh.cell(行号,列号).value
6、修改单元格的值。 sh.cell(行号,列号).value = 新的值
7、修改完成之后,一定要保存文件:wb.save(文件路径)。请注意:文件不能够被其它程序占用。比如你在本地打开这个文件,那么保存时会提示没有权限。需要你关闭掉。

6、获取WorkBook对象
方式一:可以创建一个新的

 # 导入模块
from openpyxl import Workbook
# 创建一个WorkBook
workbook = Workbook()

方式二、导入已经创建好的

# 导入模块
from openpyxl import load_workbook
# 导入一个WorkBook
wb = load_workbook("testCase.xlsx")

例子:获取excel中,login表中的第二行第二列

# 导入模块
from openpyxl import load_workbook# 导入一个WorkBook
workBook = load_workbook("testCasesx")
# 获取sheet对象
sheet = workBook["login"]
# 找到要操作的单元格
cell = sheet.cell(row=2, column=2)
print(cell.value)
#关闭
workBook.close()


运行结果:

7、load_work方法中参数的含义
def load_workbook(filename, read_only=False, keep_vba=KEEP_VBA,
data_only=False, keep_links=True):

filename: excel文件名称(带路径)
read_only: 可读可写,默认是False,只读
keep_vba:保留vba代码
data_only: 默认False,有计算公式的单元格,直接读出来是公式
True:有公式的单元格读出来是计算后的结果
keep_links:保留各种表之间的链接

8、获取Sheet对象的几种方式
① sheet = workBook[“login”]
②sheets = workBook.sheetnames 返回一个list,包含所有的Sheet名称
③for sheetName in workbook: 遍历sheet对象
④res = workBook.worksheets[1] :根据索引获取要操作的单元格
9、找到要操作的单元格的方式
①cell= sheet["B2]
②cell = sheet.cell(row=2, column=2)
10、行操作
①获取所有行对象,并取每行每个单元格的值

workBook = load_workbook("testCase.xlsx")
sheet = workBook["login"]
row = sheet.rows  # 获取所有行对象
for i in list(row):print(i)for ii in i:print(ii.value)  # 通过双层for循环,获取每行每个单元格对应的值
workBook.close()

11、获取最大行

# 获取最大行,某一行,输入东西了,又被删除, 但是该行也已经被激活了
workBook = load_workbook("testCase.xlsx")
sheet = workBook["login"]
maxRow = sheet.max_row
print(maxRow)

12、行切片

iter_rows(self,min_row=None,  起始行的索引,索引从1开始,不写的话,默认是1max_row=None, 结束行索引,不写的话默认是最大值min_col=None, 起始列的索引max_col=None, 结束列索引:不写的话默认是最大值values_only=False) 返回单元格的值workBook = load_workbook("testCase.xlsx")
sheet = workBook["login"]
for val in sheet.iter_rows(min_row=1, max_row=5, min_col=1, max_col=5, values_only=True):print(val)

13、列操作

from openpyxl import Workbook
workBook = load_workbook("testCase.xlsx")
sheet = workBook["login"]
res = sheet.columns # 获取所有的列对象
maxColumn = sheet.max_column  # 获取最大的列
print(maxColumn)
print(list(res))# 列切片
for val in sheet.iter_cols(values_only=True):print(val)

14、写表操作

单一写入,覆盖写
workBook = load_workbook(filename="testCase.xlsx")
loginSheet = workBook["login"]
# 方式一
loginSheet["A1"] = "test01"  # 给A1单元格赋值
# 方式二
loginSheet.cell(row=1, column=2).value = "test02"  # 给A1单元格赋值
# 方式三
loginSheet.cell(row=1, column=3, value="test03")
workBook.save(filename="testCase.xlsx")
# 批量写入新的内容
workBook = load_workbook(filename="testCase.xlsx")
loginSheet = workBook["login"]
# 在表格最下面去写,按行写入,每一个元素占用一个单元格
test_list = [1, 2, 3, 4, 5]
loginSheet.append(test_list)
workBook.save(filename="testCase.xlsx")

获取一个excel表的所有测试用例

from openpyxl import load_workbookworkBook = load_workbook(filename="testCase.xlsx")
loginSheet = workBook["login"]
excel_all_data = list(loginSheet.iter_rows(values_only=True))
excel_title = excel_all_data[0]  # 获取表头
case_data_list = excel_all_data[1:]  # 获取所有的用例数据
test_case_list = []  # 新建空的列表,收集所有的测试用例
for case in case_data_list:print("表头:", excel_title)print("测试用例:", case)test_case = dict(zip(excel_title, case))  # 数据拼接,用表头与测试用例拼接,成dicttest_case_list.append(test_case)  # 将每次收集好的用例,添加到新的列表中print("拼接后的数据:", test_case)
print(test_case_list)workBook.close()

【openpyxl的使用】操作excel相关推荐

  1. 利用openpyxl模块来操作Excel

    python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的 ...

  2. python excel 库 知乎_办公自动化利器openpyxl,高效操作excel的Python库

    你是不是会经常简单且重复地操作excel表格?并且这些操作的技术含量低. 本文给你介绍如何使用python高效操作excel,按照本文的教程,你可以快速高效地完成各种excel的骚操作. 你需要做的只 ...

  3. python3打包成exe把openpyxl和pandas_Python openpyxl、pandas操作Excel方法简介与具体实例...

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  4. 【Python】openpyxl | 用Python操作Excel单元格

    from openpyxl import Workbook 提取出关键词信息 keyword_data = load_workbook('data.xlsx').get_sheet_by_name(' ...

  5. python导入excel模块_python使用openpyxl模块操作excel

    python中的openpyxl模块可以操作excel文件. 使用pip安装pip install openpyxl 支持流行的lxml库(如果已安装).这在创建大文件时特别有用. 为了能够将图像(j ...

  6. python openpyxl操作Excel表格

    原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...

  7. 通Python实现操作 excel表格 工作效率提升百倍

    一.概述 操作 excel 是程序员经常要遇到的场景.因为产品.运营的数据都是以这种格式存储.所以,当程序员拿到这些数据肯定要解析,甚至需要把结果输出成 excel 文件. 下面就介绍如果用 Pyth ...

  8. 最全Python操作excel代码,让你每天早下班两小时

    在数字化时代,很多人工作中经常和excel打交道.本文介绍Python操作excel的脚本,让你工作效率更高.    文章目录 一.安装openpyxl模块 二.加载库 三.创建文件和工作表 四.在工 ...

  9. openpyxl 操作 Excel表的格基本用法

    在本教程中,将Python3和openpyxl库一起使用来操作 Excel 表格. 本文将介绍如下操作: 如何在内存中创建工作簿 如何从工作簿中检索.创建.复制.移动和删除工作表 如何从文件创建工作簿 ...

  10. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

最新文章

  1. 华为全新发布开源操作系统欧拉:覆盖数字基础设施全场景
  2. 抽象语法树 Abstract syntax tree
  3. 使用css修改checkbox选择框的样式
  4. Keras: 多输入及混合数据输入的神经网络模型
  5. lr与svm如何选择-面试
  6. ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings
  7. c语言管程例子,管程 - it610.com
  8. 清华大学 张春良 计算机系,南京张春良老师小学生信息学辅导
  9. aop注解配置切点 spring_Spring通过自定义注解灵活配置AOP切点
  10. IIS 故障一例(XP更新补丁后)
  11. Mysql字符集转换原理剖析及乱码原因
  12. 【批处理学习笔记】第二十二课:系统变量
  13. JAVA小白 编程练习500题 超详细!!!带答案!!!持续更新中~
  14. 2022电工(技师)考试题库模拟考试平台操作
  15. 服务器2012怎么安装无线网卡驱动,如何安装usb无线网卡驱动,教您如何安装电脑usb驱动...
  16. VTracer - 将图片转化为矢量 SVG 图形的免费开源工具
  17. 最新微服务、MySQL、Nginx加Redis实战,助你成功向阿里P8进军!
  18. 【Python处理EXCEL】--pandas导入Excel文件
  19. 使用了未经检查或不安全的操作
  20. 营销组合--4P理论vs4CS

热门文章

  1. vi指令說明(完整版)
  2. 转帖:最能提升工作效率的200个热键:上下(xbeta译)
  3. 下载配置JDK开发环境,记事本编写Hello world
  4. NFT游戏初创公司Mythical Games旗下游戏将与巴宝莉等进行合作
  5. 替代TeamViewer 5分钟限制的免费远程控制软件 - UltraViewer 免费远程控制软件
  6. 2022年危险化学品生产单位安全生产管理人员考试模拟100题及答案
  7. ASW3410 10GHz/USB3.1高速模拟切换芯片规格分享完美代替ONSEMI安森美FUSB340
  8. vue中background-image图片路径问题
  9. 关于Google app sign 签名的der文件引起的问题
  10. 一种城市道路网络的随机生成方式(Unity中可视化)