Django中如何用xlwt生成表格的方法步骤

同样是做表格,但是有些人的表格就做的很好看。融合了之前所学不同模块的知识,来讲讲Django中生成表格的特殊方法。
这里只是mark一下导出的方法,并没有做什么REST处理和异常处理。

维护统一的style样式,可以使导出的数据更加美观。

def export_excel(request):
  # 设置HttpResponse的类型
  response = HttpResponse(content_type='application/vnd.ms-excel')
  response['Content-Disposition'] = 'attachment;filename=user.xls'
  # new一个文件
  wb = xlwt.Workbook(encoding = 'utf-8')
  # new一个sheet
  sheet = wb.add_sheet(u'人员表单')
  # 维护一些样式, style_heading, style_body, style_red, style_green
   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 0x19;
    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;
    """
  )
  style_green = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x11;")
  style_red = xlwt.easyxf(" pattern: pattern solid,fore-colour 0x0A;")
  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_body.num_format_str = fmts[0]

  # 写标题栏
  sheet.write(0,0, '姓名', style_heading)
  sheet.write(0,1, '英文名', style_heading)
  sheet.write(0,2, '职位', style_heading)
  sheet.write(0,3, '公司电话', style_heading)
  sheet.write(0,4, '手机', style_heading)
  sheet.write(0,5, 'QQ', style_heading)
  sheet.write(0,6, 'MSN', style_heading)
  sheet.write(0,7, 'Email', style_heading)
  sheet.write(0,8, '办公地点', style_heading)
  sheet.write(0,9, '部门', style_heading)
  sheet.write(0,10, '人员状态', style_heading)

  # 写数据
  row = 1
  for usa in employesInfo.objects.all():
    sheet.write(row,0, usa.name, style_body)
    sheet.write(row,1, usa.eName, style_body)
    sheet.write(row,2, usa.postion, style_body)
    sheet.write(row,3, usa.cPhone, style_body)
    sheet.write(row,4, usa.pPhone, style_body)
    sheet.write(row,5, usa.qq, style_body)
    sheet.write(row,6, usa.msn, style_body)
    sheet.write(row,7, usa.email, style_body)
    sheet.write(row,8, usa.offAreas, style_body)
    sheet.write(row,9, usa.depart, style_body)
    if int(usa.status) == 1:
      sheet.write(row,10, '在职',style_green)
    else:
      sheet.write(row,10,'离职', style_red)
    row=row + 1 

  # 写出到IO
  output = StringIO.StringIO()
  wb.save(output)
  # 重新定位到开始
  output.seek(0)
  response.write(output.getvalue())
  return response 

到此这篇关于Django中如何用xlwt生成表格的方法步骤的文章就介绍到这了,更多相关Django xlwt生成表格内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • django使用xlwt导出excel文件实例代码

    本文研究的主要是记录一下下导出的方法,并没有做什么REST处理和异常处理. 维护统一的style样式,可以使导出的数据更加美观. def export_excel(request): # 设置HttpResponse的类型 response = HttpResponse(content_type='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment;filename=user.xls' # new一个文

  • Django中如何用xlwt生成表格的方法步骤

    同样是做表格,但是有些人的表格就做的很好看.融合了之前所学不同模块的知识,来讲讲Django中生成表格的特殊方法. 这里只是mark一下导出的方法,并没有做什么REST处理和异常处理. 维护统一的style样式,可以使导出的数据更加美观. def export_excel(request): # 设置HttpResponse的类型 response = HttpResponse(content_type='application/vnd.ms-excel') response['Content-

  • 在Django中进行用户注册和邮箱验证的方法

    本文主要介绍我在利用Django写文章时,采用的注册方法.首先说一下整体逻辑思路: •处理用户注册数据, •产生token,生成验证URL, •发送验证邮件, •用户登录网址,进行验证, •验证处理. 具体步骤: 1.添加用户 在Django中自带的User表中,有一个is_active字段,默认值是True,即用户填完表单提交之后,就可以进行登录.我们这里首先将is_acitve字段设为False,也就是说,必须经过后续的邮箱验证,才能够正常登录. 部分代码: if request.metho

  • layui的布局和表格的渲染以及动态生成表格的方法

    整体的效果: 一.首先百度搜索layui的地址,然后下载layui的压缩包,,将压缩包的文件解压缩,然后将解压缩后的文件复制到你的编译器上: 二.建立一个html文件,引入layui.css 和 layui.js两个文件,一定要将地址写对,css和js要一起引用: 三.将整个页面分为三部分body标签中要引用的class为class="layui-layout-body" 3.1.头部部分:用一个大的div包裹,class="layui-layout layui-layout

  • Asp.Net实现无限分类生成表格的方法(后台自定义输出table)

    本文实例讲述了Asp.Net实现无限分类生成表格的方法.分享给大家供大家参考,具体如下: 数据结构 monitor_group monitor_grp_id      monitor_grp_name     parent_id       level               childCount       orderby [int,自动递增]           [nvarchar,not null]      [int,not null]  [int,not null]   [int,

  • C#实现动态生成表格的方法

    本文以实例形式展现了C#实现动态生成表格的方法,分享给大家供大家参考之用.具体方法如下: public string CreateTable() { StringBuilder sb = new StringBuilder(""); int row = 1;//行数 if (true )//是否有数据 { int nRowCount = 10;//所有条数 row = (int)Math.Ceiling(nRowCount / 5.0);//5.0表示每行有多少条数据 int colN

  • django中的HTML控件及参数传递方法

    本文对djangoHTML的表单控件中的单选及多选进行介绍,并说明如何进行参数传递. 1.HTML中的表单控件: 在HTML中表单的书写一般为: <form method="post" action=""> 这个method代表方法,方法一般有两个一个是'post',一个是'get',action是提交表单到何处,可填写一个网址.不填则默认到本页面. {%csrf_token%} 这个是django中的一个标签,用于防止恶意攻击使用,如果不加入这个标签,

  • Django中celery执行任务结果的保存方法

    如下所示: pip3 install django-celery-results INSTALLED_APPS = ( ..., 'django_celery_results',) # 注意这个是下划线'_' python3 manage.py migrate django_celery_results CELERY_RESULT_BACKEND = 'django-db' #在settings.py文件中配置 注意异步任务views.py中调用时,想要记录结果必须是"任务函数.delay(*a

  • Django中reverse反转并且传递参数的方法

    在写项目的过程中,有些函数不可避免的需要传入参数进去,所以我们在使用reverse进行反转时也需要传递参数.这个时候我们就可以使用 'reverse()' 中的 kwargs 参数了,它将传入一个字典形式的变量.kwargs 也支持传入多个参数 示例代码 首先在Django项目中新建一个'reverse'的app用来测试. 在views.py中写入以下代码 from django.shortcuts import render,redirect,reverse from django.http

  • Django中自定义模型管理器(Manager)及方法

    1.自定义管理器(Manager) 在语句Book.objects.all()中, objects 是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager. 每个Django模型至少有一个manager,你可以创建自定义manager以定制数据库的访问. 这里有两个方法创建自定义manager:添加额外的manager;修改manager返回的初始Queryset. 添加额外的manager 增加额外的manager是为模块添加 表级功能 的首选办法.(至于 行级功能 ,也就是只作

  • Django中使用Json返回数据的实现方法

    在一个网站在,大量数据与前端交互,JSON是最好的传递数据方式了. 在Django中,使用JSON传输数据,有两种方式,一种是使用Python的JSON包,一种是使用Django的JsonResponse 方法一:使用Python的JSON包 from django.shortcuts import HttpResponse import json def testjson(request): data={ 'patient_name': '张三', 'age': '25', 'patient_

随机推荐