博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django xlwt实现资产导出功能
阅读量:5120 次
发布时间:2019-06-13

本文共 5035 字,大约阅读时间需要 16 分钟。

做个记录

views

import xlwtclass ExAssetView(LoginRequiredMixin,View):    def get(self,request):        row = 1        style_heading = xlwt.easyxf("""                font:                    name Arial,                    colour_index white,                    bold on,                    height 0xA0;                align:                    wrap off,                    vert center,                    horiz center;                pattern:                    pattern solid,                    fore-colour ocean_blue;                borders:                    left THIN,                    right THIN,                    top THIN,                    bottom THIN;                """)        style_body = xlwt.easyxf("""                font:                    name Arial,                    bold off,                    height 0XA0;                align:                    wrap on,                    vert center,                    horiz left;                borders:                    left THIN,                    right THIN,                    top THIN,                    bottom THIN;                """)        fmts = [            'M/D/YY',            'D-MMM-YY',            'D-MMM',            'MMM-YY',            'h:mm AM/PM',            'h:mm:ss AM/PM',            'h:mm',            'h:mm:ss',            'M/D/YY h:mm',            'mm:ss',            '[h]:mm:ss',            'mm:ss.0',        ]        style_green = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x11;")        style_red = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x0A;")        style_body.num_format_str = fmts[0]        ass_all = Asset.objects.all()        response = HttpResponse(content_type='application/vnd.ms-excel')#这里响应对象获得了一个特殊的mime类型,告诉浏览器这是个exell文件不是html        response['Content-Disposition'] = 'attachment; filename=asset'+time.strftime('%Y%m%d',time.localtime(time.time()))+'.xls'#这里响应对象获得了附加的Content-Disposition协议头,它含有excel文件的名称,文件名随意,当浏览器访问它时,会以"另存为"对话框中使用它        f = xlwt.Workbook()  # 创建工作簿        sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)  # 创建sheet        # sheet1.write(0, 1, label='内网ip', style_heading)        sheet1.write(0, 0, '主机名', style_heading)        sheet1.write(0, 1, '内网ip', style_heading)        sheet1.write(0, 2, '外网ip', style_heading)        sheet1.write(0, 3, '端口', style_heading)        sheet1.write(0, 4, '总内存', style_heading)        sheet1.write(0, 5, '总磁盘', style_heading)        sheet1.write(0, 6, 'CPU型号', style_heading)        sheet1.write(0, 7, 'CPU核数', style_heading)        sheet1.write(0, 8, '系统版本', style_heading)        sheet1.write(0, 9, '系统发行版本', style_heading)        sheet1.write(0, 10, 'DNS', style_heading)        sheet1.write(0, 11, 'MAC地址', style_heading)        sheet1.write(0, 12, '内核版本', style_heading)        sheet1.write(0, 13, '序列号', style_heading)        sheet1.write(0, 14, '虚拟化', style_heading)        sheet1.write(0, 15, '状态', style_heading)        sheet1.write(0, 16, '系统用户', style_heading)        sheet1.write(0, 17, '产品线', style_heading)        sheet1.write(0, 18, '标签', style_heading)        sheet1.write(0, 19, '云平台', style_heading)        sheet1.write(0, 20, '创建用户', style_heading)        sheet1.write(0, 21, '备注', style_heading)        sheet1.write(0, 22, '创建时间', style_heading)        sheet1.write(0, 23, '更新时间', style_heading)        for ass in ass_all:            sheet1.write(row, 0, ass.hostname)            sheet1.write(row, 1, ass.inner_ip)            sheet1.write(row, 2, ass.pub_ip)            sheet1.write(row, 3, ass.port)            sheet1.write(row, 4, ass.mem_total)            sheet1.write(row, 5, ass.disk_total)            sheet1.write(row, 6, ass.cpu_model)            sheet1.write(row, 7, ass.num_cpus)            sheet1.write(row, 8, ass.osfinger)            sheet1.write(row, 9, ass.osrelease)            sheet1.write(row, 10, ass.dns)            sheet1.write(row, 11, ass.mac_addr)            sheet1.write(row, 12, ass.kernelrelease)            sheet1.write(row, 13, ass.serialnumber)            sheet1.write(row, 14, ass.virtual)            if ass.status == '正常':                sheet1.write(row, 15, ass.status,style_green)            else:                sheet1.write(row, 15, ass.status, style_red)            sheet1.write(row, 16, ass.system_user.name + '--' + ass.system_user.username)            sheet1.write(row, 17, ass.product.name)            for tags in ass.tag.all():                sheet1.write(row, 18, tags.name)            sheet1.write(row, 19, ass.cloud_platform.cloud)            sheet1.write(row, 20, ass.create_user)            sheet1.write(row, 21, ass.detail)            sheet1.write(row, 22, str(ass.create_time), style_body)            sheet1.write(row, 23, str(ass.update_time), style_body)            row += 1        f.save(response)#写入表格        return response

urls

from  .views import ExAssetView # 资产导出app_name = 'asset'urlpatterns = [url(r'ex_asset/$', ExAssetView.as_view(), name='ex_asset'),]

前端模板

                        导出                    

导出表格样式

xxxxxxxxxx.png

转载于:https://www.cnblogs.com/guigujun/p/8784754.html

你可能感兴趣的文章
子元素浮动,父级元素为0怎么解决
查看>>
MIUI2.3.7系统后有部分程序不能移动到SD卡中的解决
查看>>
常用快捷键
查看>>
Horovod 通信策略
查看>>
try...cath...finally中的return什么时候执行
查看>>
数据结构-堆排序
查看>>
2. FTP 服务器安装
查看>>
如果我再多一个优点
查看>>
OO第二单元总结
查看>>
指定时间生成cron表达式
查看>>
项目:rbac 基于角色的权限管理系统;
查看>>
SonarQube代码质量管理平台安装与使用
查看>>
Sperner定理及其证明
查看>>
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。...
查看>>
js数据类型
查看>>
HTML5 拖放
查看>>
js 验证图片
查看>>
常用获取时间方法
查看>>
jsp数据交互(二).3
查看>>
Decode Ways
查看>>