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 相关文章推荐
python类定义的讲解
Nov 01 Python
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
python数据类型_字符串常用操作(详解)
May 30 Python
python八大排序算法速度实例对比
Dec 06 Python
解决Python安装后pip不能用的问题
Jun 12 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 Python
Django框架模板用法入门教程
Nov 04 Python
tensorflow 实现数据类型转换
Feb 17 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Python 如何反方向迭代一个序列
Jul 28 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使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
解决Python requests 报错方法集锦
2017/03/19 Python
python随机取list中的元素方法
2018/04/08 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Python解析多帧dicom数据详解
2020/01/13 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
职高毕业生自我鉴定
2013/10/21 职场文书
社区文艺活动方案
2014/08/19 职场文书
内乡县衙导游词
2015/02/05 职场文书
2015年财政局工作总结
2015/05/21 职场文书
Nginx进程调度问题详解
2021/09/25 Servers