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写的服务监控程序实例
Jan 31 Python
详解python中executemany和序列的使用方法
Aug 12 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
Python使用configparser库读取配置文件
Feb 22 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 面向对象详解
2012/09/13 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
用于table内容排序
2006/07/21 Javascript
JS实现浏览器菜单命令
2006/09/05 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
Python脚本实时处理log文件的方法
2016/11/21 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
python 实现敏感词过滤的方法
2019/01/21 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
关于爱国的演讲稿
2014/05/07 职场文书
初中重阳节活动总结
2015/05/05 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
分享几个实用的CSS代码块
2022/06/10 HTML / CSS
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS