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使用Scrapy爬取妹子图
May 28 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python学习必备知识汇总
Sep 08 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
python爬取微信公众号文章的方法
Feb 26 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
python 经典数字滤波实例
Dec 16 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
详解在OpenCV中如何使用图像像素
Mar 03 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表单请求获得数据求和示例
2014/05/15 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
js中this对象用法分析
2018/01/05 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
语文教学随笔感言
2014/02/18 职场文书
培训主管的职业生涯规划
2014/03/06 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
活动经费申请报告
2015/05/15 职场文书