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 相关文章推荐
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
Pytorch中index_select() 函数的实现理解
Nov 19 Python
python实现梯度法 python最速下降法
Mar 24 Python
python接入支付宝的实例操作
Jul 20 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 Python
Python+tkinter实现高清图片保存
Mar 13 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文本数据库的搜索方法
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
Django处理多用户类型的方法介绍
2019/05/18 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
Python项目跨域问题解决方案
2020/06/22 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
大一军训感言
2014/01/09 职场文书
横幅标语大全
2014/06/17 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
狂人日记读书笔记
2015/06/30 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js