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获取GY-85九轴模块信息示例
Dec 05 Python
深入理解Python3 内置函数大全
Nov 23 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
python基于物品协同过滤算法实现代码
May 31 Python
对Python 数组的切片操作详解
Jul 02 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
Python3如何判断三角形的类型
Apr 12 Python
Python结合Window计划任务监测邮件的示例代码
Aug 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
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JavaScript希尔排序、快速排序、归并排序算法
2016/05/08 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
BootStrap Fileinput上传插件使用实例代码
2017/07/28 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python环境变量设置方法
2016/08/28 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
python调试神器PySnooper的使用
2019/07/03 Python
python 默认参数相关知识详解
2019/09/18 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
Python如何输出警告信息
2020/07/30 Python
python实现经纬度采样的示例代码
2020/12/10 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
大学生职业生涯规划方案
2014/01/03 职场文书
运动会稿件50字
2014/02/17 职场文书
法制宣传实施方案
2014/03/13 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
起诉意见书范文
2015/05/19 职场文书
元旦主持词开场白
2015/05/29 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
Python基础教程,Python入门教程(超详细)
2021/06/24 Python