Python使用openpyxl操作excel表格
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
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表格的更多相关文章
- Python 使用openpyxl导出Excel表格的时候,使用save()保存到指定路径
在使用openpyxl导出Excel表格的使用,如何指定导出的路径呢. 使用sava(filename),会保存到当前执行文件的路径下. 使用sava("/tmp/{}.xlsx" ...
- python用openpyxl操作excel
python操作excel方法 1)自身有Win32 COM操作office但讲不清楚,可能不支持夸平台,linux是否能用不清楚,其他有专业处理模块,如下 2)xlrd:(读excel)表,xlrd ...
- python通过openpyxl操作excel
python 对Excel操作常用的主要有xlwt.xlrd.openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作 ...
- 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中
现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...
- python使用openpyxl操作excel总结
安装openpyxl pip install openpyxl 简单示例 from openpyxl import Workbook #创建一个工作薄对象,也就是创建一个excel文档 wb = Wo ...
- openpyxl操作excel表格
1.openpyxl 只支持打开.xlsx格式,其他excel类库基本也是 2.不能这里的工作面板直接右键新建表格,必须到文件夹下面去新建,可以把在别的目录新建的表格直接复制到当前目录下 3.从表格中 ...
- python库openpyxl操作excel
废话不多说,看代码,不懂的留言. from openpyxl import * class ExcelUtil: ''' 读取excel文件内容''' def create_work_book(sel ...
- python使用openpyxl操作excel
def initExcel(): file_path = "test.xlsx" file = load_workbook(file_path) table = file[&quo ...
- Python中用OpenPyXL处理Excel表格 - 单元格格式设置
官方文档: http://openpyxl.readthedocs.io/en/default/ OpenPyXL库 --单元格样式设置 单元格样式的控制,依赖openpyxl.style包,其中定义 ...
随机推荐
- C# Lazy Loading
前言 按需加载对象延迟加载实际是推迟进行创建对象,直到对其调用后才进行创建初始化,延迟(懒加载)的好处是提高系统性能,避免不必要的计算以及不必要的资源浪费. 常规有这些情况: 对象创建成本高且程序可能 ...
- 伪共享 FalseSharing (CacheLine,MESI) 浅析以及Java里的解决方案
起因 在阅读百度的发号器 uid-generator 源码的过程中,发现了一段很奇怪的代码: /** * Represents a padded {@link AtomicLong} to preve ...
- windows虚拟机中DNS服务配置
在linux虚拟机中进行DNS服务配置并进行正向解析反向解析我博客中已经写过,下面 我来介绍一下在windows虚拟机中DNS服务的配置使用. 1.打开一台windows虚拟机中服务器管理器——角色— ...
- 【HC资料合集】2019华为全联接大会主题资料一站式汇总,免费下载!
HUAWEI CONNECT 2019 大会主题演讲.峰会演讲精彩资料速递,欢迎下载查阅. 主题 资料下载(登录后可下载附件) 演讲者 [主题演讲资料]2019华为全联接大会day 2 共筑高品质 ...
- 关于CSS选择器连续性的问题
在html中有以下结构: --- ----- <div class="row100"> <div class="col"> <di ...
- 小白探究UE4网络系列(一)、UE4网络基础类分析
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 捣鼓UE4也有两个多月了,从这儿开始,逐步探究UE4中经典的值复制,RPC两种同步方式.想要弄到其复制和调用的原 ...
- luogu P5171 Earthquake
题目描述 给定 a,b,c ,求满足方程 ax+by⩽c 的非负整数解个数. 输入格式 输入三个整数 a,,b,,c . 输出格式 输出一个整数表示答案. 类欧几里得算法 #include<cs ...
- I/O中断原理
目录 I/O中断原理 前言 什么是中断 中断类型 硬件中断 软件中断 I/O中断流程 无中断 有中断 中断处理 相关文献 I/O中断原理 前言 在Windows内核原理-同步IO与异步IO和<高 ...
- Python 如何定义只读属性?【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Daniel2333如果还没学到属性问题,看不懂不怪你,可以先去小编的P ...
- 笔记||Python3之模块与包
模块的概念:一个.py文件就称之为一个模块. 包的概念:把许多个模块按照功能放到不同的目录中来组织模块,这些组织存放模块文件的目录,我们称之为包. 模块与包的优势:1- 方便别人调用 2 - 避免同名 ...