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处理文本文件实现生成指定格式文件的方法
Jul 31 Python
给Python IDLE加上自动补全和历史功能
Nov 30 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
window下eclipse安装python插件教程
Apr 24 Python
Python学习小技巧之列表项的拼接
May 20 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
Python装饰器的执行过程实例分析
Jun 04 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
windows上彻底删除jupyter notebook的实现
Apr 13 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 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
Windows下利用Gvim写PHP产生中文乱码问题解决方法
2011/04/20 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
javascript中的几个运算符
2007/06/29 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
Python 如何访问外围作用域中的变量
2016/09/11 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
python使用requests.session模拟登录
2019/08/09 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
keras 权重保存和权重载入方式
2020/05/21 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
售后客服工作职责
2014/06/16 职场文书
2014年电厂工作总结
2014/12/04 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
SQL 聚合、分组和排序
2021/11/11 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL
Vue监视数据的原理详解
2022/02/24 Vue.js