前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

一、openpyxl的使用

pip install openpyxl

第一步:打开工作簿(读取Excel文件中所有的数据保存为工作簿对象)

workbook = openpyxl.load_workbook('cases.xlsx')

第二步:选中表单对象

sheet = workbook['login']

第三步:通过表单选中表格读取数据

①读取内容(第五行第四列)

 data = sheet.cell(row=5,column=4)
printa(data.value) # 获取内容用value方法

②写入内容(保存才会生效)

 sheet.cell(row=7,column=3,value='("Python","123456")')
# 写入内容后,一定要保存才会生效
workbook.save('cases.xlsx')

③获取最大行和最大列

# 最大行
sheet.max_row
# 最大列
sheet.max_column

④按行获取所有的格子对象,每一行格子放入一个元组中

sheet.rows

注意点:不要随便在表格中敲空格

二、openpyxl的封装

导包

import openpyxl

封装

 class ReadExcel(object):
"""操作Excl文件""" def __init__(self, fileName, sheetName):
"""
初始化方法
:param fileName: Excel文件名
:param sheetName: 表单名
"""
self.fileName = fileName
self.sheetName = sheetName def open(self):
"""打开工作簿,选中表单"""
self.wb = openpyxl.load_workbook(self.fileName)
self.sh = self.wb[self.sheetName] def save(self):
"""保存工作簿对象的方法"""
self.wb.save(self.fileName)
self.wb.close() # 这一行加不加关系不大,加了可以释放内存

1、读取数据

①将每条数据存储成字典类型

     def read_data_dict(self):
"""读取数据(将每条数据存储成字典类型)"""
# 打开工作簿
self.open()
# 通过rows获取Excel文件中所有的行数据,然后把数据转成列表
rows = list(self.sh.rows)
# 表头
title = []
# 遍历Excel文件中的第一行表头信息
for i in rows[0]:
title.append(i.value)
# 用例数据列表
cases = []
# 遍历用例数据行
for row in rows[1:]:
# 定义一个列表存放每一行的数据
data = []
# 遍历每一行的数据
for r in row:
data.append(r.value)
# 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中
case = dict(zip(title, data))
cases.append(case)
return cases

②将每条数据存储成CaseData类对象类型

 class CaseData(object):
"""保存用例数据类"""
pass
def read_data_obj(self):
"""读取数据(将数据保存到CaseData类中)"""
self.open()
rows = list(self.sh.rows)
# 表头
title = []
# 遍历Excel文件中的第一行表头信息
for i in rows[0]:
title.append(i.value)
# 定义用例列表,用来存放用例类列表
cases = []
# 遍历用例数据行
for row in rows[1:]:
# 定义一个列表存放每一行的数据
data = []
# 遍历每一行的数据
for r in row:
data.append(r.value)
# 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中
case = dict(zip(title, data))
# 定义一个用例存放类对象
case_obj = CaseData()
for k, v in case.items():
# 通过setattr()给对象添加属性
setattr(case_obj, k, v)
# 把对象添加到列表中
cases.append(case_obj)
return cases

2、写入数据

     def write_data(self, row, column, value):
"""
写入数据
:param row: 行
:param column: 列
:param value: 数据
"""
self.open()
# 指定行列进行写入数据
self.sh.cell(row=row, column=column, value=value)
# 保存
self.wb.save(self.fileName)
# 关闭
self.wb.close()

Python使用openpyxl操作excel表格的更多相关文章

  1. Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径

    在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...

  2. python用openpyxl操作excel

    python操作excel方法 1)自身有Win32 COM操作office但讲不清楚,可能不支持夸平台,linux是否能用不清楚,其他有专业处理模块,如下 2)xlrd:(读excel)表,xlrd ...

  3. python通过openpyxl操作excel

    python 对Excel操作常用的主要有xlwt.xlrd.openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作 ...

  4. 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中

    现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...

  5. python使用openpyxl操作excel总结

    安装openpyxl pip install openpyxl 简单示例 from openpyxl import Workbook #创建一个工作薄对象,也就是创建一个excel文档 wb = Wo ...

  6. openpyxl操作excel表格

    1.openpyxl 只支持打开.xlsx格式,其他excel类库基本也是 2.不能这里的工作面板直接右键新建表格,必须到文件夹下面去新建,可以把在别的目录新建的表格直接复制到当前目录下 3.从表格中 ...

  7. python库openpyxl操作excel

    废话不多说,看代码,不懂的留言. from openpyxl import * class ExcelUtil: ''' 读取excel文件内容''' def create_work_book(sel ...

  8. python使用openpyxl操作excel

    def initExcel(): file_path = "test.xlsx" file = load_workbook(file_path) table = file[&quo ...

  9. Python中用OpenPyXL处理Excel表格 - 单元格格式设置

    官方文档: http://openpyxl.readthedocs.io/en/default/ OpenPyXL库 --单元格样式设置 单元格样式的控制,依赖openpyxl.style包,其中定义 ...

随机推荐

  1. 【CPLUSOJ】【USACO】【差分约束】排队(layout)

    [题目描述] Robin喜欢将他的奶牛们排成一队.假设他有N头奶牛,编号为1至N.这些奶牛按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多头奶牛挤在同一位置的情况(也就是说,如果我们认 ...

  2. vi指令详解

    ★ vi的模式(命令模式.插入模式.ex模式) 1)命令模式: 在我们刚刚通过vi新建或打开一个已经存在的文件时,首先默认被读取的模式就是“命令模式”,命令模式的特征就是,在编辑器窗口左下角的位置上没 ...

  3. 实战webpack系列03

    03.Webpack的强大功能 一.生成Source Maps(使调试更容易) 通过简单的配置,webpack就可以在打包时为我们生成的source maps,这为我们提供了一种对应编译文件和源文件的 ...

  4. js鼠标划过事件

    js鼠标划过事件一般有两对 onmouseover/onmouseout onmouseenter/onmouseleave 区别: 1.onmouseover/onmouseout 鼠标经过自身会触 ...

  5. c语言l博客作业08

    问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...

  6. 题解 CF1206B 【Make Product Equal One】

    感谢 @一个低调的人 (UID=48417) 题目: CodeForces链接 Luogu链接 思路: 这是一个一眼题 我们不妨把所有的数都看做是\(1\)(取相应的花费,如:\(6\) 的花费就是\ ...

  7. HTTPS工作流程(入门)

    1.CA(为服务器做担保的第三方机构)将包含CA[公钥C]等信息的[证书C]发送给浏览器: 2.服务器将其[公钥S]和网站信息发送给CA: 3.CA用CA[私钥C]将这些信息加密得到了签名后的[服务器 ...

  8. php方法注释

    注释格式 <?php /** * @method 发送邮件 * @url email/send?token=xxx * @http POST * @param token string [必填] ...

  9. 关于c++函数里面return的用法,关于调用的讲解

    与下面的图片对比一下 可以看见在int b = test();d的时候cout<<"hello";就被调用了: cout<<b;只是返回return a的值 ...

  10. Python开发GUI工具介绍,实战:将图片转化为素描画!

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...