python实现excel读写数据

yipeiwu_com5年前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迭代和迭代器

我们将要来学习python的重要概念迭代和迭代器,通过简单实用的例子如列表迭代器和xrange。 可迭代 一个对象,物理或者虚拟存储的序列。list,tuple,strins,dictt...

pyttsx3实现中文文字转语音的方法

如下所示: import pyttsx3 import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer,...

基于YUV 数据格式详解及python实现方式

基于YUV 数据格式详解及python实现方式

YUV 数据格式概览 YUV 的原理是把亮度与色度分离,使用 Y、U、V 分别表示亮度,以及蓝色通道与亮度的差值和红色通道与亮度的差值。其中 Y 信号分量除了表示亮度 (luma) 信号...

Django ORM 聚合查询和分组查询实现详解

Django ORM 聚合查询和分组查询实现详解

models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models...

git进行版本控制心得详谈

git进行版本控制心得详谈

小编在学习可视化的时候,接触到git,所以这里写一下关于GitHub的有关知识,写这个的目的还是巩固自己的学习,一方面可以提高自己,另一方面回头看一下,有什么更深层次的东西还可以再记录。...