django使用xlwt导出excel文件实例代码


Posted in Python onFebruary 06, 2018

本文研究的主要是记录一下下导出的方法,并没有做什么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导出excel文件实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python 参数列表中的self 显式不等于冗余
Dec 01 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
Python中的sort()方法使用基础教程
Jan 08 Python
深入理解Django的中间件middleware
Mar 14 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
Python实现多线程的两种方式分析
Aug 29 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python对Excel的读取的示例代码
Feb 14 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
Python使用装饰器进行django开发实例代码
Feb 06 #Python
Python yield与实现方法代码分析
Feb 06 #Python
Django中间件工作流程及写法实例代码
Feb 06 #Python
Django数据库表反向生成实例解析
Feb 06 #Python
Python使用functools实现注解同步方法
Feb 06 #Python
django中send_mail功能实现详解
Feb 06 #Python
Python打印“菱形”星号代码方法
Feb 05 #Python
You might like
php mysql数据库操作分页类
2008/06/04 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
js 提交和设置表单的值
2008/12/19 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Yahoo-PHP面试题1
2016/07/20 面试题
个人求职信范文
2014/05/24 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis