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使用post提交数据到远程url的方法
Apr 29 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
python获取多线程及子线程的返回值
Nov 15 Python
python的turtle库使用详解
May 10 Python
Python面向对象进阶学习
May 21 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
Python简单实现区域生长方式
Jan 16 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
如何使用repr调试python程序
Feb 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
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
ie focus bug 解决方法
2009/09/03 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
Javascript事件实例详解
2013/11/06 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
React实现全选功能
2020/08/25 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python列表append和+的区别浅析
2015/02/02 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
Python pass详细介绍及实例代码
2016/11/24 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Python 列表的清空方式
2020/01/13 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
参观考察邀请函范文
2014/01/29 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
课例研修方案
2014/05/31 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
债务追讨律师函
2015/06/24 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
Go获取两个时区的时间差
2022/04/20 Golang