Python对excel写入数据操作实例代码(只供参考)

#coding=utf8
'''
把buffer中的信息,写入到excel中。
并按照要求,构造表格样式
'''
#导入readCSV模块,用来获取buffer数据
from readCSV import readCSV
from readConfig import Config
#导入写excel的操作库
import xlwt
class GenTestCase(object):
    def __init__(self,configObj=Config()):
        try:
            
            #创建一个readCSV对象
            self.dataInfor=readCSV(configObj)
            #创建工作薄
            self.wkbook=xlwt.Workbook()
            #创建表:“requirement”
            self.dataSheet=self.wkbook.add_sheet("requirement")
            #把数据按 按照相应格式写入excel表中
            self.writeDataToExcel()
            #保存文件
            self.savaExcel()
        except Exception,e:
            print "GenTestCase init error:",e
        
    def writeDataToExcel(self):
        try:
            #埋点测试用例包含的相关属性,即表头
            firstLine=[u"埋点事件",u"页面",u"serviceId",u"属性名", u"属性值",u"属性信息",u"埋点规则",u"版本",u"IOS开发",u"安卓开发",u"创建时间",u"测试人员",u"测试状态"]
            #在表的起始行写入表头数据
            try:
                for index in range(len(firstLine)):
                    self.dataSheet.write(0,index,firstLine[index])
            except Exception,e:
                print "Creat Head Error:",e
                
            #把csv中读取的数据赋给变量dataBody  
            dataBody=self.dataInfor.buffer
            #设置个函数,用来记录要合并的起始行
            currentrow=1
            #对数据进行循环取值,由于第一行的数据不是需要的数据
            #所以从第二个元素开始
            try:
                for rowNum in  range(1,len(dataBody)):
                    #对于每个子list中的值,依次写入相关单元格
                    for index in range(len(dataBody[rowNum])):
                        #判断行是否大于1,为以下比较创建条件
                        if rowNum>1:
                            #把数据的当前行的元素与上一行元素作比较
                            #如果不相等执行if语句
                            try:
                                if dataBody[rowNum-1][0]!=dataBody[rowNum][0] :
                                    print currentrow,rowNum
                                    #由于存在特殊情况,当前行号要为1
                                    #针对特定的数据规则从和并前三行和后七行
                                    if currentrow==1:
                                        for cols in range(3):
                                            #获取当前在合并单元格要保存的值
                                            cellValue=dataBody[currentrow][cols]
                                            #对单元格的值进行解码
                                            cellValue=cellValue.decode("gbk")
                                            #对单元格字符串进行加u
                                            #用来解决UnicodeDecodeError
                                            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,13):
                                            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
                            except Exception,e:
                                print "Merage cell Error:",e
                    
                    for cols in range(3,6):              
                        cellValue=dataBody[rowNum][cols]
                        cellValue=cellValue.decode("gbk")
                        data=u"%s"  %(cellValue)
                        self.dataSheet.write(rowNum,cols,data)
            except Exception,e:
                print "Write Data Error:",e
        except Exception,e:
            print "Write Data TO Excel Error:",e
    
    def savaExcel(self):
        try:
            savePath=self.dataInfor.fmObj.RequmentPath()
            self.wkbook.save(savePath)
        except Exception,e:
            print "Save Excel Error:",e
                    
    
    
                  
        
def test():
    GenTestCase()
    
if __name__=="__main__":
    test()

转载于:https://my.oschina.net/u/2291665/blog/1476814

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值