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 相关文章推荐
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
python解析xml文件实例分析
May 27 Python
Python下Fabric的简单部署方法
Jul 14 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
python数据归一化及三种方法详解
Aug 06 Python
Python 复平面绘图实例
Nov 21 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP与SQL注入攻击[二]
2007/04/17 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP修改session_id示例代码
2014/01/08 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
JavaScript 异步调用
2017/10/25 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
Joules美国官网:出色的英国风格
2017/10/30 全球购物
大学生的应聘自我评价
2013/12/13 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
网络研修随笔感言
2014/02/17 职场文书
双拥工作宣传标语
2014/06/26 职场文书
学习十八大的感悟
2015/08/11 职场文书
Tomcat配置访问日志和线程数
2022/05/06 Servers