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生成pdf文件的方法
Aug 04 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
Pytorch之finetune使用详解
Jan 18 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
VSCODE配置Markdown及Markdown基础语法详解
Jan 19 Python
用Python提取PDF表格的方法
Apr 11 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
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python的json包位置及用法总结
2020/06/21 Python
开水果连锁店创业计划书
2013/12/29 职场文书
18岁生日感言
2014/01/12 职场文书
三年级小学生评语
2014/04/22 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
工作会议简报
2015/07/20 职场文书
python OpenCV学习笔记
2021/03/31 Python
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server