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实现的Kmeans++算法实例
Apr 26 Python
python实现2048小游戏
Mar 30 Python
python编写分类决策树的代码
Dec 21 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
python实现图片转字符小工具
Apr 30 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
如何一键升级Python所有包
Nov 05 Python
利用python做表格数据处理
Apr 13 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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
用PHP实现WEB动态网页静态
2006/10/09 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Python文档生成工具pydoc使用介绍
2015/06/02 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
市场部专员岗位职责
2013/11/30 职场文书
机械专业应届生求职信
2013/12/12 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
如何写好自荐信
2014/04/07 职场文书
成绩单公证书
2014/04/10 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server