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 相关文章推荐
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
python3实现用turtle模块画一棵随机樱花树
Nov 21 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
python3 简单实现组合设计模式
Jul 02 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
python如何构建mock接口服务
Jan 28 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 Python
Python实现打乒乓小游戏
Sep 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
在php中取得image按钮传递的name值
2006/10/09 PHP
留言板翻页的实现详解
2006/10/09 PHP
用PHP生成静态HTML速度快类库
2007/03/18 PHP
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
javascript通过class来获取元素实现代码
2013/02/20 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
python3.x实现发送邮件功能
2018/05/22 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
关于Django Models CharField 参数说明
2020/03/31 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
实习自我鉴定范文
2013/10/30 职场文书
小学生校园广播稿
2014/09/28 职场文书
行政主管岗位职责
2015/02/03 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python
JavaScript实现两个数组的交集
2022/03/25 Javascript