Python 写Excel

        Python有很多操作Excel的第三方库,这里用的则是Python自带的一个库叫csv,使用的时候直接import csv就行了。

rs =obj #数据集(我这里用的是mongodb数据库,所以这里的数据集是一个对象)

        csvfile = StringIO() #创建一个字符串缓存对象

        writer = csv.writer(csvfile)        #创建一个csv的writer对象


        titles = ["主题", "名称/设备IP", "监控项目", "工单信息" ,"工程师" ,"开始时间", "结束时间", "紧急程度"]
        writer.writerow(titles)        #在Excel文件第一行添加title
        for r in rs.get("results",[]): #循环数据集,把里面的数据一行一行的写进去(注:因为我这里是要把数据按照上面第一行对应的顺序写出来,所以循环写,如果不要这么做的话,也可直接这样子:    writer.writerow(rs) 把一个数据集直接写进去。
            listr = [r.subject, r.event.label, r.monitorObjName, r.content, r.user.engineer.titleOrUid(),
                     xutils.formartTime(r.startTime, fm="%Y-%m-%d %H:%M") ,
                     xutils.formartTime(r.endTime, fm="%Y-%m-%d %H:%M") ,
                      r.emergencyDegree]
            writer.writerow(listr)
        
csvfile = codecs.EncodedFile(csvfile, "gbk", "utf-8") #如果你碰到编码问题了就加上后面那两个参数吧,具体参数还是以你自己的环境而定,不一定是gbk和utf8哦

    csvfile.seek(0)#这句话一定不能漏,它是表示指针跳到文件开始的位置,这样下面的read才会从第0个字符串开始读取。
    data = csvfile.read() #read()表示读取到文件尾部,如果像这样read(5)在括号里加上数字,则是指明读取多少个字节。还有readline和readlines这两个函数,分别表示逐行读取和把数据读取到一个列表中去。
    csvfile.close()#关闭文件
    
    response = HttpResponse(data,mimetype='application/octet-stream') 
    response['Content-Disposition'] = 'attachment; filename=Appraisements_file.csv'
    return response #返回一个response结果到页面下载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值