# coding:utf-8
from django.http import HttpResponse
from xlwt import *
import StringIO, os
from test_celery.models import PhoneNumber

def excel_out(request):
    number_list = PhoneNumber.objects.all().order_by('time')
    if number_list:
        ws = Workbook(encoding='utf-8')
        w = ws.add_sheet(u'电话本', cell_overwrite_ok=True)
        w.write(0, 0, u'编号')
        w.write(0, 1, u'姓名')
        w.write(0, 2, u'性别')
        w.write(0, 3, u'时间')
        excel_row = 1
        for number in number_list:
            id = number.id
            name = number.name
            sex = number.sex
            time = str(number.time)
            w.write(excel_row, 0, id)
            w.write(excel_row, 1, name)
            w.write(excel_row, 2, sex)
            w.write(excel_row, 3, time)
            excel_row += 1

        # 保存于本地
        # exist_file = os.path.exists('phone.xls')
        # if exist_file:
        #     os.remove(r'phone.xls')
        # ws.save('phone.xls')

        # 返回文件给用户,用户操作浏览器对话框保存文件
        sio = StringIO.StringIO()
        ws.save(sio)
        sio.seek(0)
        # http响应头告知浏览器,返回excel
        response = HttpResponse(sio.getvalue(), content_type='application/vnd.ms-excel')
        # 浏览器打开/保存的对话框
        response['Content-Disposition'] = 'attachment;filename=phone.xls'
        # 响应体
        response.write(sio.getvalue())
        return response

最新文章

  1. Windows 2008 server IIS 7 中开启CGI, ISAPI
  2. C++标准库vector类型详解
  3. Category目录
  4. 第二百四十二天 how can I 坚持
  5. 集合框架工具类--Collections排序
  6. TCP Linger的坑
  7. (转)Ubuntu中使用dpkg安装deb文件提示依赖关系问题,仍未被配置
  8. 运用bootstrap框架的时候 引入文件的问题
  9. hibernate sql查询转换成VO返回list
  10. 冲刺NO.10
  11. iOS 字典转模型Model
  12. 依赖注入[2]: 基于IoC的设计模式
  13. Navicat premium 破解步骤
  14. 封装curl的get和post请求
  15. VideoView 监听视频格式不支持时的错误。
  16. Linux下solr集群搭建
  17. C#6.0语言规范(十六) 异常
  18. 使用C#和Thrift来访问Hbase实例
  19. 2018.07.08 NOIP模拟 第K小数(二分)
  20. 【数学】【CF1096C】 Polygon for the Angle

热门文章

  1. 关于onConfigurationChanged
  2. 2017-2018-2 20179205《网络攻防技术与实践》Windows攻击实验
  3. Codeforces Round #505
  4. ksh函数
  5. 30 C? Go? Cgo!
  6. J2V8 For Android
  7. POJ 2955 Brackets(括号匹配一)
  8. Ubuntu CEPH快速安装
  9. IE源代码摘抄,基于泄漏的IE5.0(持续更新)
  10. 一步一步学习IdentityServer3 (8)