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入门篇之条件、循环
Oct 17 Python
python中函数传参详解
Jul 03 Python
理想高通滤波实现Python opencv示例
Jan 30 Python
python global关键字的用法详解
Sep 05 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
简单了解为什么python函数后有多个括号
Dec 19 Python
Python底层封装实现方法详解
Jan 22 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python递归调用实现数字累加的代码
Feb 25 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
Python虚拟环境venv用法详解
May 25 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
输出控制类
2006/10/09 PHP
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
python redis连接 有序集合去重的代码
2019/08/04 Python
django自带调试服务器的使用详解
2019/08/29 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
Java程序员常见面试题
2015/07/16 面试题
大专应届生个人的自我评价
2013/11/21 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
公司租车协议书
2015/01/29 职场文书
体检通知范文
2015/04/21 职场文书
开网店计划分析
2019/07/30 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL