python实现excel读写数据

yipeiwu_com6年前Python基础

本文实例为大家分享了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已知元素,获取元素索引(numpy,pandas)

目前搜索到的方法有: np.where(‘元素') 还有就是pandas的方法: df.index(‘元素') 但是第二个方法的问题就是会报错,嗯,这就比较尴尬了,查询了网上的解决方案,...

python实现绘制树枝简单示例

python实现绘制树枝简单示例

python是解释型语言,本文介绍了Python下利用turtle实现绘图功能的示例,本例所示为Python绘制一个树枝,具体实现代码如下:    &nbs...

python解析xml文件实例分析

本文实例讲述了python解析xml文件的方法。分享给大家供大家参考。具体如下: python解析xml非常方便。在dive into python中也有讲解。 如果xml的结构如下:...

Django中自定义查询对象的具体使用

自定义查询对象 - objects ①声明一个类EntryManager,继承自models.Manager,并添加自定义函数 ②使用创建的自定义类EntryManager 覆盖Mo...

Python ZipFile模块详解

Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要...