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 相关文章推荐
Django中使用locals()函数的技巧
Jul 16 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
详解Python Socket网络编程
Jan 05 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
python读取excel表格生成erlang数据
Aug 26 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
简单的命令查看安装的python版本号
Aug 28 Python
python 发送邮件的四种方法汇总
Dec 02 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封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
offsetParent 算法分析
2010/04/05 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
js DOM的学习笔记
2011/12/22 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
Python与R语言的简要对比
2017/11/14 Python
selenium+python环境配置教程详解
2019/05/28 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
分公司经理岗位职责
2013/11/11 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
买卖协议书范本
2014/04/21 职场文书
小班上学期评语
2014/05/05 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
2015年教师节慰问信
2015/03/23 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android