前言

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

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

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

一、openpyxl的使用

  1. pip install openpyxl

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

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

第二步:选中表单对象

  1. sheet = workbook['login']

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

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

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

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

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

③获取最大行和最大列

  1. # 最大行
  2. sheet.max_row
  3. # 最大列
  4. sheet.max_column

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

  1. sheet.rows

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

二、openpyxl的封装

导包

  1. import openpyxl

封装

  1. class ReadExcel(object):
  2. """操作Excl文件"""
  3.  
  4. def __init__(self, fileName, sheetName):
  5. """
  6. 初始化方法
  7. :param fileName: Excel文件名
  8. :param sheetName: 表单名
  9. """
  10. self.fileName = fileName
  11. self.sheetName = sheetName
  12.  
  13. def open(self):
  14. """打开工作簿,选中表单"""
  15. self.wb = openpyxl.load_workbook(self.fileName)
  16. self.sh = self.wb[self.sheetName]
  17.  
  18. def save(self):
  19. """保存工作簿对象的方法"""
  20. self.wb.save(self.fileName)
  21. self.wb.close() # 这一行加不加关系不大,加了可以释放内存

1、读取数据

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

  1. def read_data_dict(self):
  2. """读取数据(将每条数据存储成字典类型)"""
  3. # 打开工作簿
  4. self.open()
  5. # 通过rows获取Excel文件中所有的行数据,然后把数据转成列表
  6. rows = list(self.sh.rows)
  7. # 表头
  8. title = []
  9. # 遍历Excel文件中的第一行表头信息
  10. for i in rows[0]:
  11. title.append(i.value)
  12. # 用例数据列表
  13. cases = []
  14. # 遍历用例数据行
  15. for row in rows[1:]:
  16. # 定义一个列表存放每一行的数据
  17. data = []
  18. # 遍历每一行的数据
  19. for r in row:
  20. data.append(r.value)
  21. # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中
  22. case = dict(zip(title, data))
  23. cases.append(case)
  24. return cases

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

  1. class CaseData(object):
  2. """保存用例数据类"""
  3. pass
  4. def read_data_obj(self):
  5. """读取数据(将数据保存到CaseData类中)"""
  6. self.open()
  7. rows = list(self.sh.rows)
  8. # 表头
  9. title = []
  10. # 遍历Excel文件中的第一行表头信息
  11. for i in rows[0]:
  12. title.append(i.value)
  13. # 定义用例列表,用来存放用例类列表
  14. cases = []
  15. # 遍历用例数据行
  16. for row in rows[1:]:
  17. # 定义一个列表存放每一行的数据
  18. data = []
  19. # 遍历每一行的数据
  20. for r in row:
  21. data.append(r.value)
  22. # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中
  23. case = dict(zip(title, data))
  24. # 定义一个用例存放类对象
  25. case_obj = CaseData()
  26. for k, v in case.items():
  27. # 通过setattr()给对象添加属性
  28. setattr(case_obj, k, v)
  29. # 把对象添加到列表中
  30. cases.append(case_obj)
  31. return cases

2、写入数据

  1. def write_data(self, row, column, value):
  2. """
  3. 写入数据
  4. :param row: 行
  5. :param column: 列
  6. :param value: 数据
  7. """
  8. self.open()
  9. # 指定行列进行写入数据
  10. self.sh.cell(row=row, column=column, value=value)
  11. # 保存
  12. self.wb.save(self.fileName)
  13. # 关闭
  14. 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. C# Lazy Loading

    前言 按需加载对象延迟加载实际是推迟进行创建对象,直到对其调用后才进行创建初始化,延迟(懒加载)的好处是提高系统性能,避免不必要的计算以及不必要的资源浪费. 常规有这些情况: 对象创建成本高且程序可能 ...

  2. 伪共享 FalseSharing (CacheLine,MESI) 浅析以及Java里的解决方案

    起因 在阅读百度的发号器 uid-generator 源码的过程中,发现了一段很奇怪的代码: /** * Represents a padded {@link AtomicLong} to preve ...

  3. windows虚拟机中DNS服务配置

    在linux虚拟机中进行DNS服务配置并进行正向解析反向解析我博客中已经写过,下面 我来介绍一下在windows虚拟机中DNS服务的配置使用. 1.打开一台windows虚拟机中服务器管理器——角色— ...

  4. 【HC资料合集】2019华为全联接大会主题资料一站式汇总,免费下载!

    HUAWEI CONNECT 2019 大会主题演讲.峰会演讲精彩资料速递,欢迎下载查阅. 主题 资料下载(登录后可下载附件) 演讲者 [主题演讲资料]2019华为全联接大会day   2 共筑高品质 ...

  5. 关于CSS选择器连续性的问题

    在html中有以下结构: --- ----- <div class="row100"> <div class="col"> <di ...

  6. 小白探究UE4网络系列(一)、UE4网络基础类分析

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 捣鼓UE4也有两个多月了,从这儿开始,逐步探究UE4中经典的值复制,RPC两种同步方式.想要弄到其复制和调用的原 ...

  7. luogu P5171 Earthquake

    题目描述 给定 a,b,c ,求满足方程 ax+by⩽c 的非负整数解个数. 输入格式 输入三个整数 a,,b,,c . 输出格式 输出一个整数表示答案. 类欧几里得算法 #include<cs ...

  8. I/O中断原理

    目录 I/O中断原理 前言 什么是中断 中断类型 硬件中断 软件中断 I/O中断流程 无中断 有中断 中断处理 相关文献 I/O中断原理 前言 在Windows内核原理-同步IO与异步IO和<高 ...

  9. Python 如何定义只读属性?【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Daniel2333如果还没学到属性问题,看不懂不怪你,可以先去小编的P ...

  10. 笔记||Python3之模块与包

    模块的概念:一个.py文件就称之为一个模块. 包的概念:把许多个模块按照功能放到不同的目录中来组织模块,这些组织存放模块文件的目录,我们称之为包. 模块与包的优势:1- 方便别人调用 2 - 避免同名 ...