python3:excel操作之读取数据并返回字典 + 写入的案例


Posted in Python onSeptember 01, 2020

excel写入数据,使用openpyxl库

class WriteExcel:
 def __init__(self,path):
  self.path = path
 
 def write_excel(self, sheet_name, content):
  """
  在excel指定sheet中的写入指定内容,以追加方式
  :return:
  """
  wb = openpyxl.load_workbook(self.path)
  ws = wb[sheet_name]
  # 获取最大行
  row_num = ws.max_row
  try:
   ws.cell(row=row_num+1, column=1).value = content
  except Exception as msg:
   print('写入excel失败:', msg)
  finally:
   wb.save(self.path) 
 
if __name__ == '__main__':
 WE = WriteExcel('../config/data.xlsx')
 WE.write_excel(sheet_name='user', content='瑟瑟发抖')

python3:excel操作之读取数据并返回字典 + 写入的案例

excel读取数据,使用xlrd库

class ReadExcel:
 def __init__(self,path):
  self.path = path
 
 def read_excel(self,row):
  """
  遍历excel所有sheet,并以字典返回
  :param row:
  :return:
  """
  with xlrd.open_workbook(self.path, 'rb') as book:
   sheets = book.sheet_names() # 找到所有sheets
   data_dict = {}
   for sheet in sheets:
    table = book.sheet_by_name(sheet) # 找到要操作的sheet
 
    # 获取sheet所有列数
    col_num = table.ncols
    # 读取第一行的值,作为每个sheet返回字典的key
    keys = table.row_values(0)
 
    # 读取除指定行,作为每个sheet返回字典的value
    values = table.row_values(row)
 
    # 遍历所有列,并以字典接收,其中第一行作为字典的key,其他行作为字典的value
    sheet_dict = {}
    for col in range(col_num):
     sheet_dict[keys[col]] = values[col]
 
   # 遍历所有sheet,并以字典接收返回,其中sheet名称作为字典的key,每个sheet的数据作为字典的value
    data_dict[sheet] = sheet_dict
  return data_dict

python3:excel操作之读取数据并返回字典 + 写入的案例

读取结果:

python3:excel操作之读取数据并返回字典 + 写入的案例

补充知识:Python+selenium+ddt数据驱动测试

我就废话不多说了,大家还是直接看代码吧~

import ddt
 
testData = ['1','2','3']
print testData
 
@ddt.ddt
class Bolg(unittest.TestCase):
  
  def setUp(self):
    print('setUp')
 
  @ddt.data(*testData)
  def test_l(self, data):
    print(data)
 
  def tearDown(self):
    print('tearDown')
 
if __name__ == "__main__":
  unittest.main()
 
============
1
2
3

以上这篇python3:excel操作之读取数据并返回字典 + 写入的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中unittest用法实例
Sep 25 Python
在Python中使用zlib模块进行数据压缩的教程
Jun 26 Python
Python MD5加密实例详解
Aug 02 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
深入浅析python with语句简介
Apr 11 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
正则给header的冒号两边参数添加单引号(Python请求用)
Aug 09 Python
Python操作Mongodb数据库的方法小结
Sep 10 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
Django使用rest_framework写出API
May 21 Python
python爬取豆瓣电影TOP250数据
May 23 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 #Python
Django如何批量创建Model
Sep 01 #Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 #Python
一文详述 Python 中的 property 语法
Sep 01 #Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 #Python
聊聊python中的异常嵌套
Sep 01 #Python
理解Django 中Call Stack机制的小Demo
Sep 01 #Python
You might like
php printf输出格式使用说明
2010/12/05 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
php反射应用示例
2014/02/25 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
初识Node.js
2015/03/20 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
python使用scrapy解析js示例
2014/01/23 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
linux环境下Django的安装配置详解
2019/07/22 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
Django如何使用第三方服务发送电子邮件
2019/08/14 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
求职自荐信
2013/12/14 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
民事申诉状范本
2015/05/20 职场文书
公司安全管理制度范本
2015/08/05 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
利用Apache Common将java对象池化的问题
2022/06/16 Servers