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图像灰度变换及图像数组操作
Jan 27 Python
python 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python中turtle作图示例
Nov 15 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
python对excel文档去重及求和的实例
Apr 18 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
用pycharm开发django项目示例代码
Oct 24 Python
python 实现得到当前时间偏移day天后的日期方法
Dec 31 Python
python面向对象 反射原理解析
Aug 12 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 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缓存类实例
2014/07/18 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php获取linux命令结果的实例
2017/03/13 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
javascript 写类方式之四
2009/07/05 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
python处理json数据中的中文
2014/03/06 Python
django实现前后台交互实例
2017/08/07 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python实现字符串和字典的转换
2018/09/29 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python使用配置文件过程详解
2019/12/28 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python3 字符串知识点学习笔记
2020/02/08 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
python中的测试框架
2020/11/13 Python
python源文件的字符编码知识点详解
2021/03/04 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
银行实习鉴定
2013/12/13 职场文书
九年级家长会邀请函
2014/01/15 职场文书
毕业生面试求职信
2014/06/23 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android