V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
HLT
V2EX  ›  Python

求教: python 在后台如何将数据导出 excel

  •  
  •   HLT · 2015-01-14 12:34:08 +08:00 · 12821 次点击
    这是一个创建于 3601 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如,系统内有学生的报名信息:姓名 性别 身份证号 第一志愿 第二志愿 第三志愿 。。。。如何将这些数据导出成excel呢?有什么相关的插件或实现思路吗?
    同理,也有导入的需求!

    15 条回复    2016-06-04 12:05:21 +08:00
    zvhdd
        1
    zvhdd  
       2015-01-14 12:37:58 +08:00   ❤️ 1
    why not CSV?
    chevalier
        2
    chevalier  
       2015-01-14 12:40:39 +08:00   ❤️ 1
    CSV吧
    Monad
        3
    Monad  
       2015-01-14 12:41:50 +08:00   ❤️ 1
    Delbert
        4
    Delbert  
       2015-01-14 12:42:20 +08:00   ❤️ 1
    xlrt
    xlwt
    jianghu52
        5
    jianghu52  
       2015-01-14 13:38:33 +08:00   ❤️ 1
    http://www.111cn.net/phper/python/42388.htm
    这里有excel的读取和写的操作教程,希望对你有帮助。但是个人建议,如果为了通用性的话,还是存csv文件吧。excel格式真不是什么好东西。
    knightwang
        6
    knightwang  
       2015-01-14 14:29:04 +08:00   ❤️ 1
    xlwt挺好用的
    kunimi
        7
    kunimi  
       2015-01-14 14:31:09 +08:00   ❤️ 1
    csv的话,pandas.to_csv & pandas.read_csv
    superbear
        8
    superbear  
       2015-01-14 15:45:06 +08:00   ❤️ 1
    csv,excel可直接打开的,不过请注意把逗号先替换掉
    cevincheung
        9
    cevincheung  
       2015-01-14 15:52:52 +08:00   ❤️ 1
    新建一个excel文件。另存为xml。然后用编辑器打开。然后你懂的。
    jamiesun
        10
    jamiesun  
       2015-01-14 15:56:28 +08:00   ❤️ 1
    tablib
    glasslion
        11
    glasslion  
       2015-01-14 16:38:03 +08:00   ❤️ 1
    xlwt 正解
    jiang42
        12
    jiang42  
       2015-01-14 16:42:58 +08:00   ❤️ 1
    pandas...
    geeklian
        13
    geeklian  
       2015-01-14 16:53:00 +08:00 via iPhone   ❤️ 1
    我说一个变相的思路吧,屡试不爽,已经用在单位的生产环境,不需要第三方库。

    1,用ms excel编辑好excel模板。

    2,保存成2003xml格式

    3,将这个文件作为django/web.py的模板使用。多行就循环加行。

    4.在html头部加入
    content-type :application/ms-excel

    content-disposition:attachment;filename=“xxxz.xls”


    这样导出报表时会自动打开excel。

    单位没正常外网,手机回帖,楼主多多包涵。
    zonghua
        14
    zonghua  
       2016-04-19 14:23:32 +08:00
    @geeklian 让我尝试一下
    shawshi
        15
    shawshi  
       2016-06-04 12:05:21 +08:00
    推荐一个代码片段
    #-----------------------------------
    import xlwt
    import StringIO
    import web
    urls = (
    '/rim_request','rim_request',
    '/rim_export','rim_export',
    '/(.*)', 'index'
    )
    class rim_export:
    #render = web.template.render('adsl')
    def GET(self):
    web.header('Content-type','application/vnd.ms-excel') #指定返回的类型
    web.header('Transfer-Encoding','chunked')
    web.header('Content-Disposition','attachment;filename="export.xls"') #设定用户浏览器显示的保存文件名
    wb=xlwt.Workbook()
    wb.encoding='gbk'
    ws=wb.add_sheet('1')
    ws.write(0,1,'123') #如果要写中文请使用 UNICODE
    sio=StringIO.StringIO()
    wb.save(sio) #这点很重要,传给 save 函数的不是保存文件名,而是一个 StringIO 流
    self.write(sio.getvalue())
    return
    #该代码片段来自于: http://www.sharejs.com/codes/python/7265
    #-----------------------------------

    我用的 web 框架是 tornado.web 框架

    StringIO 主要通过这个框架获取到 excel 的二进制数据流,该方法适合所有的文件导出,楼上通过 xml 导出有一定的局限性
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2761 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:05 · PVG 12:05 · LAX 20:05 · JFK 23:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.