Python —— excel文件操作(超详细)_python读取excel文件

- 安装openpyxl,使用 pip install openpyxl

- 导入:import | from  openpyxl  import  xxx

2、读取的步骤

1、读取单元格数据

  1. 获取表格的工作簿对象(用到 openpyxl中的load_workbook模块)
  2. 得到表单,通过sheet名称 — sheet
  3. 获取单元格 — cell
  4. 获取单元格数据 — cell.value

实战演练:

excel表格如下:

代码实战:

from openpyxl import load_workbook
import pathlib

# 获取excel的相对路径
cur_path = pathlib.Path(__file__).absolute()
excel_path = cur_path.parent/"testcase64.xlsx"

# 第一步,获取表格的工作簿对象
wb = load_workbook(excel_path)
print(wb) # <openpyxl.workbook.workbook.Workbook object at 0x03EFCD60>

# 第二步,得到表单——sheet
sheet = wb["login"]
print(sheet)

# 第三步,获取单元格数据
cell = sheet.cell(row=1,column=3)
print(cell)

# 第四步,获取单元格数据 -- value
cell_value = sheet.cell(row=2,column=2).value
print(cell_value)   # 输出:登录正常

# 获取表单中所有的数据 -- 转化为列表
# 因为 sheet.values的输出是“<generator object Worksheet.values at 0x03817840” > 就是一个生成器,可以转化为列表的形式
datas = list(sheet.values)
print(datas)    # 是一个列表,每一个数据都是元组
'''
[
('id', 'title', 'method', 'header', 'url', 'data', 'expected'), 
(1, '登录正常', 'post', '{"Content-Type":"application/json"}', 'https://openapiv5.ketangpai.com//UserApi/login', '{"email":"2378807189@qq.com ","password":"lemon123456 ","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1695045752424}', '{"status":1,"code":10000,"message":"访问成功","data":{"token":"skjdaskjhd"}'), 
(2, '登录异常', 'post', '{"Content-Type":"application/json"}', 'https://openapiv6.ketangpai.com//UserApi/login', '{"email":"2378807189@qq.com ","password":"lemon","remember":"0","code":"","mobile":"","type":"login","reqtimestamp":1695045752424}', '{"status":0,"code":"30508","message":"登录失败"}')
]
'''

'''
全部读取的数据转化为项目里需要的格式数据
'''
# 第一步,取出标题
title = datas[0]

# 第二步,再一次获取后续的每一行数据,跟title压缩成字典
case_list = []
for case in datas[1:]:
    case_dict = dict(zip(title,case))
    case_list.append(case_dict)
print(case_list)

# 通过列表推导式来遍历
case_list1 = []
case_list1 = [case_list1.append(dict(zip(title,case))) for case in datas]
print(case_list)

2、读取excel文件的优化

优化思路,代码分层思想:按照不同的功能代码进行不同包的管理(自动化框架的结构):

  1. 工具层:tools/common/util,封装好的公共方法,类同于Jmeter里的函数助手,比如对excel读取数据的处理过程
  2. 测试数据层:data/testdata,放测试数据,例如:txt文件、excel表格等
  3. 测试用例层:主要维护用例(pytest框架主要做的事情)
  4. 测试结果输出:如 测试报告、测试日志
  5. 入口文件:main.py、run.py一般放在最外层

优化实战:

1、按照分层思想,新建data层和tools层,并完善其中的文件,参考如下图片:

2、将获取excel_path和获取数据的方式分别写到handle_excel文件和handle_path两个文件中,如下:

'''
 handle_excel文件
'''
from openpyxl import load_workbook
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/e6a0759011a3e6ac38c175df44470a2d.png)

![img](https://img-blog.csdnimg.cn/img_convert/ab825837bb9afd5c94ea6b7fa43837ad.png)

![img](https://img-blog.csdnimg.cn/img_convert/687fff14da19f4da34e86c7ad9d293e4.png)

![img](https://img-blog.csdnimg.cn/img_convert/acfe124c90106e31d36c9de1545cff5b.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/7f9ab71e970b6fdbf2ca29b302293ad1.jpeg)
  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python有多个库可以读写Excel文件,其中比较常用的有: 1. openpyxl:一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件Python库。 2. xlrd/xlwt:用于读写Excel 97-2003 .xls文件Python库。 3. pandas:pandas库可以读取和写入多种文件格式,包括Excel文件。 下面分别介绍使用这三个库的方法: ### 1. 使用openpyxl 安装openpyxl库: ``` pip install openpyxl ``` 读取Excel文件: ```python from openpyxl import load_workbook # 打开Excel文件 wb = load_workbook(filename='example.xlsx', read_only=True) # 选择工作表 ws = wb['Sheet1'] # 读取单元格数据 cell_value = ws.cell(row=1, column=1).value print(cell_value) # 遍历行 for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): for cell in row: print(cell.value) # 遍历列 for col in ws.iter_cols(min_row=1, max_col=3, max_row=2): for cell in col: print(cell.value) # 读取整个工作表的数据,返回一个嵌套列表 data = [] for row in ws.iter_rows(min_row=1): row_data = [] for cell in row: row_data.append(cell.value) data.append(row_data) print(data) ``` 写入Excel文件: ```python from openpyxl import Workbook # 创建Excel文件 wb = Workbook() # 选择工作表 ws = wb.active # 写入单元格数据 ws['A1'] = 'Hello' ws.cell(row=1, column=2, value='World') # 写入多行数据 data = [['Name', 'Age', 'Gender'], ['Tom', 18, 'Male'], ['Lucy', 20, 'Female']] for row in data: ws.append(row) # 保存Excel文件 wb.save('example.xlsx') ``` ### 2. 使用xlrd/xlwt 安装xlrd和xlwt库: ``` pip install xlrd pip install xlwt ``` 读取Excel文件: ```python import xlrd # 打开Excel文件 wb = xlrd.open_workbook('example.xls') # 选择工作表 ws = wb.sheet_by_name('Sheet1') # 读取单元格数据 cell_value = ws.cell_value(0, 0) print(cell_value) # 遍历行 for row in range(ws.nrows): for col in range(ws.ncols): cell_value = ws.cell_value(row, col) print(cell_value) # 读取整个工作表的数据,返回一个嵌套列表 data = [] for row in range(ws.nrows): row_data = [] for col in range(ws.ncols): cell_value = ws.cell_value(row, col) row_data.append(cell_value) data.append(row_data) print(data) ``` 写入Excel文件: ```python import xlwt # 创建Excel文件 wb = xlwt.Workbook() # 选择工作表 ws = wb.add_sheet('Sheet1') # 写入单元格数据 ws.write(0, 0, 'Hello') ws.write(0, 1, 'World') # 写入多行数据 data = [['Name', 'Age', 'Gender'], ['Tom', 18, 'Male'], ['Lucy', 20, 'Female']] for row, row_data in enumerate(data): for col, cell_value in enumerate(row_data): ws.write(row+1, col, cell_value) # 保存Excel文件 wb.save('example.xls') ``` ### 3. 使用pandas 安装pandas库: ``` pip install pandas ``` 读取Excel文件: ```python import pandas as pd # 读取Excel文件 df = pd.read_excel('example.xlsx', sheet_name='Sheet1') # 读取单元格数据 cell_value = df.iloc[0, 0] print(cell_value) # 遍历行 for index, row in df.iterrows(): print(row['Name'], row['Age'], row['Gender']) # 读取整个工作表的数据,返回一个DataFrame对象 data = df.values.tolist() print(data) ``` 写入Excel文件: ```python import pandas as pd # 创建DataFrame对象 df = pd.DataFrame({'Name': ['Tom', 'Lucy'], 'Age': [18, 20], 'Gender': ['Male', 'Female']}) # 写入Excel文件 df.to_excel('example.xlsx', sheet_name='Sheet1', index=False) ``` 以上是使用Python读写Excel的常用方法,可以根据实际需求选择不同的库和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值