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的web框架中中编写日志列表的教程
Apr 30 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python smtplib模块自动收发邮件功能(一)
May 22 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
Python实战之制作天气查询软件
May 14 Python
python openpyxl使用方法详解
Jul 18 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 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抽象类 介绍
2012/06/13 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
跟我学Laravel之视图 & Response
2014/10/15 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
php桥接模式应用案例分析
2019/10/23 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
js 内存释放问题
2010/04/25 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[03:39]2015国际邀请赛主赛事首日精彩回顾
2015/08/05 DOTA
python matplotlib画图实例代码分享
2017/12/27 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
Nike香港官网:Nike HK
2019/03/23 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
总经理秘书的岗位职责
2013/12/27 职场文书
广告学专业求职信
2014/06/19 职场文书
会计专业自荐信范文
2015/03/05 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电