python实现excel读写数据


Posted in Python onMarch 02, 2021

本文实例为大家分享了python操作EXCEL的实例源码,供大家参考,具体内容如下

读EXCEL的操作:把excel的数据存储为字典类型

#coding=utf8 
 
#导入读excel的操作库 
import xlrd 
class GenExceptData(object): 
 def __init__(self): 
  try: 
   self.dataDic={} 
   #打开工作薄 
   self.wkbook= xlrd.open_workbook("Requirement.xls") 
   #获取工作表“requirement” 
   self.dataSheet=self.wkbook.sheet_by_name("requirement") 
   #把数据按 按照相应格式写入excel表中 
   self.readDataToDicl() 
   #保存文件 
  except Exception,e: 
   print "Read Excel error:",e 
 
 def readDataToDicl(self): 
  try: 
   nrows = self.dataSheet.nrows 
   ncols = self.dataSheet.ncols 
    
   print ncols ,nrows 
   try: 
    for rowNum in range(1,nrows):   
       #把数据的当前行的元素与上一行元素作比较 
       #如果不相等执行if语句 
       try: 
         
        singleJson={} 
        propertyName=self.dataSheet.cell(rowNum,3).value 
        propertyValue=self.dataSheet.cell(rowNum,4).value 
               
        if self.dataSheet.cell(rowNum,0).value and self.dataSheet.cell(rowNum,2).value: 
         mdEvent=self.dataSheet.cell(rowNum,0).value 
         singleJson["serviceId"]=self.dataSheet.cell(rowNum,2).value 
        singleJson[propertyName]=propertyValue        
        print singleJson 
        self.dataDic[mdEvent]=singleJson 
        singleJson.clear() 
         
         
       except Exception,e: 
        print "Get Data Error:",e 
   except Exception,e: 
    print "Reading Data Error:",e 
  except Exception,e: 
   print "Reading Data TO Dic Error:",e 
 
  
     
   
def test(): 
 GenExceptData() 
  
if __name__=="__main__": 
 test()

写EXCEL的操作:把csv文件的数据按照需求写入到excel文件中

#coding=utf8 
 
from readCSV import readCSV 
import xlwt 
 
class GenTestCase(): 
 def __init__(self,path="E:\\PythonDemo\\OperExcel\\Demo.csv"): 
  self.dataInfor=readCSV(path) 
  #创建工作薄 
  self.wkbook=xlwt.Workbook() 
  #创建表:“埋点需求” 
  self.dataSheet=self.wkbook.add_sheet("shellt") 
  self.creatHead() 
   
 def creatHead(self): 
  firstLine=[] 
  #创建表头 
  for index in range(len(firstLine)): 
   self.dataSheet.write(0,index,firstLine[index]) 
    
  dataBody=self.dataInfor.buffer 
  print dataBody.__len__() 
  currentrow=1 
  for rowNum in range(1,len(dataBody)): 
   for index in range(len(dataBody[rowNum])): 
    if rowNum>1: 
     if dataBody[rowNum-1][0]!=dataBody[rowNum][0] : 
      print currentrow,rowNum 
      if currentrow==1: 
       for cols in range(3): 
        cellValue=dataBody[currentrow][cols] 
        cellValue=cellValue.decode("gbk") 
        data=u"%s" %(cellValue) 
        self.dataSheet.write_merge(currentrow,rowNum-1,cols,cols,data) 
         
       for cols in range(6,13): 
        cellValue=dataBody[currentrow][cols] 
        cellValue=cellValue.decode("gbk") 
        data=u"%s" %(cellValue) 
        self.dataSheet.write_merge(currentrow,rowNum-1,cols,cols,data)  
      else:  
       for cols in range(3): 
        cellValue=dataBody[currentrow][cols] 
        cellValue=cellValue.decode("gbk") 
        data=u"%s" %(cellValue) 
        self.dataSheet.write_merge(currentrow-1,rowNum-1,cols,cols,data) 
       for cols in range(6,12): 
        cellValue=dataBody[currentrow][cols] 
        cellValue=cellValue.decode("gbk") 
        data=u"%s" %(cellValue) 
        self.dataSheet.write_merge(currentrow-1,rowNum-1,cols,cols,data)            
      currentrow=rowNum+1       
     break 
    
   for cols in range(3,6):    
    cellValue=dataBody[rowNum][cols] 
    cellValue=cellValue.decode("gbk") 
    data=u"%s" %(cellValue) 
    self.dataSheet.write(rowNum,cols,data) 
         
  self.wkbook.save(r'reqq.xlsx') 
  
     
   
def test(): 
 GenTestCase() 
  
if __name__=="__main__": 
 test()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用Supervisor来管理进程的方法
May 28 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
django如何连接已存在数据的数据库
Aug 14 Python
安装docker-compose的两种最简方法
Jul 30 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
django创建简单的页面响应实例教程
Sep 06 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
keras 多gpu并行运行案例
Jun 10 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 #Python
python unittest实现api自动化测试
Apr 04 #Python
Python Unittest自动化单元测试框架详解
Apr 04 #Python
python如何使用unittest测试接口
Apr 04 #Python
Python统计单词出现的次数
Apr 04 #Python
高效使用Python字典的清单
Apr 04 #Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 #Python
You might like
thinkphp实现数组分页示例
2014/04/13 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
js中this的用法实例分析
2015/01/10 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
python实现发送邮件及附件功能
2021/03/02 Python
Python多线程扫描端口代码示例
2018/02/09 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
深入分析python 排序
2020/08/24 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
canvas实现图片马赛克的示例代码
2018/03/26 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
中间件分为哪几类
2012/03/14 面试题
庐山导游词
2015/02/03 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang