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下singleton模式的实现方法
Jul 16 Python
python写的一个squid访问日志分析的小程序
Sep 17 Python
Python中的生成器和yield详细介绍
Jan 09 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
python和flask中返回JSON数据的方法
Mar 26 Python
Django代码性能优化与Pycharm Profile使用详解
Aug 26 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python简单区块链模拟详解
Jul 03 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
python引入其他文件夹下的py文件具体方法
May 23 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
15种PHP Encoder的比较
2007/03/06 PHP
php遍历数组的方法分享
2012/03/22 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
浅谈php命令行用法
2015/02/04 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python最长公共子串算法实例
2015/03/07 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
乡镇干部先进事迹材料
2014/02/03 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
外贸英文求职信范文
2015/03/19 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书