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简单的函数定义和用法实例
May 07 Python
Python扫描IP段查看指定端口是否开放的方法
Jun 09 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
python实现机器人行走效果
Jan 29 Python
全面分析Python的优点和缺点
Feb 07 Python
Python的多维空数组赋值方法
Apr 13 Python
在python下读取并展示raw格式的图片实例
Jan 24 Python
Django 开发环境配置过程详解
Jul 18 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
使用python代码进行身份证号校验的实现示例
Nov 21 Python
python程序如何进行保存
Jul 03 Python
python中的split、rsplit、splitlines用法说明
Oct 23 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP中实现图片的锐化
2006/10/09 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Python reversed函数及使用方法解析
2020/03/17 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
携程英文网站:Trip.com
2017/02/07 全球购物
青年教师典范事迹材料
2014/01/31 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
四年级作文之植物
2019/09/20 职场文书