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的print用法示例
Feb 11 Python
在Python的Django框架上部署ORM库的教程
Apr 20 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python实现QQ批量登录功能
Jun 19 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python多线程使用方法实例详解
Dec 30 Python
Python利用命名空间解析XML文档
Aug 10 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
PHP实现验证码校验功能
2017/11/16 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
javascript中的一些注意事项 更新中
2010/12/06 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
消防安全管理制度
2014/02/01 职场文书
私人委托书格式
2014/09/10 职场文书
黄石寨导游词
2015/02/05 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL