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中的装饰器使用
Jun 20 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
Python常用算法学习基础教程
Apr 13 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python根据文本生成词云图代码实例
Nov 15 Python
YUV转为jpg图像的实现
Dec 09 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
PyTorch安装与基本使用详解
Aug 31 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 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中截取字符串支持utf-8
2007/01/18 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
万能的php分页类
2017/07/06 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
Python map和reduce函数用法示例
2015/02/26 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
python如何查看微信消息撤回
2018/11/27 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
《太阳》教学反思
2014/02/21 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
企业新年寄语
2014/04/04 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
市场开发计划书
2014/05/07 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
消防安全宣传标语
2014/06/07 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技