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


Posted in Python onJanuary 31, 2021

同样是做表格,但是有些人的表格就做的很好看。融合了之前所学不同模块的知识,来讲讲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生成表格内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
python三大神器之fabric使用教程
Jun 10 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
Django 请求Request的具体使用方法
Nov 11 Python
Python之关于类变量的两种赋值区别详解
Mar 12 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
Numpy 多维数据数组的实现
Jun 18 Python
python右对齐的实例方法
Jul 05 Python
Django中template for如何使用方法
Jan 31 #Python
python中os.remove()用法及注意事项
Jan 31 #Python
python os.listdir()乱码解决方案
Jan 31 #Python
linux系统下pip升级报错的解决方法
Jan 31 #Python
Linux系统下升级pip的完整步骤
Jan 31 #Python
用python制作个音乐下载器
Jan 30 #Python
Python 中Operator模块的使用
Jan 30 #Python
You might like
优化使用mysql存储session的php代码
2008/01/10 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
详解php反序列化
2020/06/10 PHP
Javascript typeof 用法
2008/12/28 Javascript
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
js表头排序实现方法
2015/01/16 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
自我评价如何写好?
2014/01/05 职场文书
投标邀请书范文
2014/01/31 职场文书
生物制药专业求职信
2014/03/11 职场文书
出纳员岗位职责
2014/03/13 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书