Python-openpyxl表格读取写入的案例详解


Posted in Python onNovember 02, 2020

1.为何选择openpyxl模块

xlxd、xlwt、?只能读取,openpyxl、可以读取写入

2.安装

pip install -i https://pypi.douban.com/simple openpyxl==2.6.2

3.处理对象

openpyxl只能处理xlsx格式的excel文件,只能使用办公软件来创建xlsx格式的excel文件,不能使用pycharm来创建
excel对象 -> sheet表单对象 -> cell单元格对象 -> 行和列、值属性
如果excel文件不存在,那么会FileNotFoundError
res = load_workbook(“testcase11.xlsx”)

4.代码案例

from openpyxl import load_workbook
# load_workbook,往往对已存在的excel进行读写操作
class Handle_excel:

  def __init__(self,filename,sheetname = None):
    self.filename = filename
    self.sheetname = sheetname
    
  def read_data(self):
    """
    读取表格数据
    :return:
    """
    wb = load_workbook(self.filename)
    if self.sheetname is None:
      ws = wb.active # active默认读取第一个表单
    else:
      ws = wb[self.sheetname]  # 读取指定表单

    testcase_list = [] # 所有数据信息
    header_list = []  # 表头信息
    for row in range(1,ws.max_row+1):
      one_row_dict = {}  # 每一行数据信息
      for column in range(1,ws.max_column+1):
        one_cell_value = ws.cell(row,column).value # cell方法,获取单元格,返回Cell对象
        if row == 1:
          header_list.append(one_cell_value)
        else:
          key = header_list[column-1]
          one_row_dict[key] = one_cell_value
      if row != 1:
        testcase_list.append(one_row_dict)

    return testcase_list

  def write_data(self, row, column, data):
    """
    写操作
    :param row: 指定在某一行写
    :param column: 指定在某一列写
    :param data: 待写入的数据
    :return:
    """
    # 将数据写入到excel中,不能与读取操作公用一个Workbook对象
    # 如果使用同一个Workbook对象,只能将最后一次写入成功,会出现意想不到的结果
    wb = load_workbook(self.filename)
    if self.sheetname is None:
      ws = wb.active
    else:
      ws = wb[self.sheetname]

    # 第一种写入方式:
    # one_cell = ws.cell(row, column)
    # one_cell.value = data

    # 第二种写入方式:
    ws.cell(row, column, value=data)

    # c.PermissionError: [Errno 13] Permission denied: 'testcase.xlsx'
    # 对exel文件修改之后,要保存,一定要将excel文件关闭
    wb.save(self.filename)


if __name__ == "__main__":
  excel_name =“testcase.xlsx"
  sheet_name = "login"
  do_excel = Handle_excel(excel_name,sheet_name)
  print(do_excel.read_data())
  #do_excel.write_data(3,4,5)

到此这篇关于Python-openpyxl表格读取写入的案例详解的文章就介绍到这了,更多相关Python表格读取写入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
python的dict,set,list,tuple应用详解
Jul 24 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
理解Python中的类与实例
Apr 27 Python
Python 文件管理实例详解
Nov 10 Python
python实现简单爬虫功能的示例
Oct 24 Python
scrapy爬虫实例分享
Dec 28 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
Python常用扩展插件使用教程解析
Nov 02 #Python
python实现三壶谜题的示例详解
Nov 02 #Python
python 实现批量图片识别并翻译
Nov 02 #Python
基于python实现百度语音识别和图灵对话
Nov 02 #Python
用python进行视频剪辑
Nov 02 #Python
如何通过python实现IOU计算代码实例
Nov 02 #Python
Opencv常见图像格式Data Type及代码实例
Nov 02 #Python
You might like
深入PHP magic quotes的详解
2013/06/17 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
python 字典(dict)按键和值排序
2016/06/28 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Python元组知识点总结
2019/02/18 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
Python列表的切片实例讲解
2019/08/20 Python
Python使用贪婪算法解决问题
2019/10/22 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
用python制作个音乐下载器
2021/01/30 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
建筑项目策划书
2014/01/13 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
移交协议书
2014/08/19 职场文书
自查自纠整改报告
2014/11/06 职场文书
幼儿园教师求职信
2015/03/20 职场文书
活动主持人开场白
2015/05/28 职场文书
关于Nginx中虚拟主机的一些冷门知识小结
2022/03/03 Servers
python获取带有返回值的多线程
2022/05/02 Python
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL