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 23 Python
python连接oracle数据库实例
Oct 17 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
python Pandas 读取txt表格的实例
Apr 29 Python
基于python中theano库的线性回归
Aug 31 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
Python pandas库中的isnull()详解
Dec 26 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
python批量处理多DNS多域名的nslookup解析实现
Jun 28 Python
如何基于Django实现上下文章跳转
Sep 16 Python
python 爬虫如何实现百度翻译
Nov 16 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
在PHP中执行系统外部命令
2006/10/09 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
Python类的基础入门知识
2008/11/24 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
python学生信息管理系统(完整版)
2020/04/05 Python
超简单的Python HTTP服务
2019/07/22 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python如何使用代码运行助手
2020/07/03 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
爱护花草树木的标语
2014/06/11 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
2014年内勤工作总结
2014/11/24 职场文书
2016年国培研修日志
2015/11/13 职场文书
德劲DE1108畅想
2021/04/22 无线电
redis 解决库存并发问题实现数量控制
2022/04/08 Redis