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 append、extend与insert的区别
Oct 13 Python
解决python3 json数据包含中文的读写问题
May 10 Python
python reverse反转部分数组的实例
Dec 13 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
Python闭包和装饰器用法实例详解
May 22 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 Python
python playwrigh框架入门安装使用
Jul 23 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
Laravel 读取 config 下的数据方法
2019/10/13 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue多层嵌套路由实例分析
2019/03/19 Javascript
小程序实现分类页
2019/07/12 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
工程力学硕士生的自我评价范文
2013/11/16 职场文书
大学自荐信
2013/12/12 职场文书
化学实验员岗位职责
2013/12/28 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
小学后勤管理制度
2014/01/14 职场文书
市场营销方案范文
2014/03/11 职场文书
电视购物广告词
2014/03/19 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
护士个人年度总结范文
2015/02/13 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python