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
zhuyw2006
V2EX  ›  Python

菜鸟请教: 导出文件是用前端还是后端?

  •  
  •   zhuyw2006 · 2018-06-20 23:13:06 +08:00 · 10332 次点击
    这是一个创建于 2351 天前的主题,其中的信息可能已经有所发展或是发生改变。

    学习 django 有一段时间了,在做一个报表系统练练手,前端是 vue.js + element ui。 需要一个导出前端数据表格文件,可以选择导出的文件类型:Excel、PDF、word、图片。 也可以直接发送邮箱,发送的文件类型可以选择上面这几种。 还可以直接打印页面表格。

    对应上面这些,如何正确的选择 JS 还是 Django 处理呢? 谢谢解答!

    23 条回复    2018-06-22 09:50:15 +08:00
    FeifeiJin
        1
    FeifeiJin  
       2018-06-20 23:30:50 +08:00 via Android
    后端
    liuhuansir
        2
    liuhuansir  
       2018-06-20 23:51:16 +08:00
    一般来说都是后端做,Java 的话这几种都有现成的库
    lrh3321
        3
    lrh3321  
       2018-06-21 06:48:02 +08:00 via Android
    一般是后端。数据量小的时候,可以让前端渲染个页面给用户去打印。
    wenzhoou
        4
    wenzhoou  
       2018-06-21 07:18:09 +08:00 via Android
    感觉 js 的库调整 excel 的格式比较麻烦。
    PythonAnswer
        5
    PythonAnswer  
       2018-06-21 07:20:16 +08:00 via iPhone
    js 一般没有本地写权限
    zhuyw2006
        6
    zhuyw2006  
    OP
       2018-06-21 08:03:48 +08:00
    zhuyw2006
        7
    zhuyw2006  
    OP
       2018-06-21 08:04:20 +08:00
    谢谢
    DavidNineRoc
        8
    DavidNineRoc  
       2018-06-21 09:06:39 +08:00
    难道后台语言就有本地写的功能? >_<。
    只能任由浏览器选择。
    sunzongzheng
        9
    sunzongzheng  
       2018-06-21 09:15:26 +08:00 via Android
    除 word 前端都能做。数据量太大就后端做
    stone1996
        10
    stone1996  
       2018-06-21 09:23:45 +08:00
    有时候前端会分页就不适合前端导出了。鉴于适配性和一致性,还是后端吧
    annielong
        11
    annielong  
       2018-06-21 09:49:33 +08:00
    前端一般都是显示整个页面然后输出打印,
    moxiaonai
        12
    moxiaonai  
       2018-06-21 09:53:55 +08:00
    除了 word,发送邮件,其他前端都能做
    wenzhoou
        13
    wenzhoou  
       2018-06-21 11:14:53 +08:00 via Android
    后端做也麻烦。后端做文件的话,消耗的是服务器的性能。放在客户端做文件的话,消耗的是用户的 CPU 和内存,觉得这样好一些。
    whypool
        14
    whypool  
       2018-06-21 11:18:31 +08:00
    @DavidNineRoc 怕是没用过下载,后端发的是文件流
    DavidNineRoc
        15
    DavidNineRoc  
       2018-06-21 11:45:04 +08:00
    @whypool SO ?后端有本地写的功能?本地不是你的服务器,而是指客户端。我没说清楚。
    funlee
        16
    funlee  
       2018-06-21 12:38:09 +08:00
    最近刚好做了一个导出 word 的功能,前端做的,利用了 file-saver 和 jquery.wordexport.js ,还做了批量导出额。
    crb912
        17
    crb912  
       2018-06-21 12:52:19 +08:00 via Android
    @DavidNineRoc 抬杠就没意思了。他说的是服务器后端生成需要的报表文件。然后通过网络,以二进制流的方式当时传输给客户端。

    服务器后端,用于读写客户端,怕不是天方夜谭?
    DavidNineRoc
        18
    DavidNineRoc  
       2018-06-21 14:06:42 +08:00
    @crb912 牛逼,你后面这句话。还反问号问我?
    xiaoxlm
        19
    xiaoxlm  
       2018-06-21 19:11:16 +08:00
    后端做啊,前端给个下载用的接口链接就行了
    mingyun
        20
    mingyun  
       2018-06-21 23:44:11 +08:00
    @funlee 666 有链接吗
    betulachen
        21
    betulachen  
       2018-06-22 08:31:01 +08:00 via iPhone
    写过,后台生成然后发给前端
    xianxiaobo
        22
    xianxiaobo  
       2018-06-22 09:29:54 +08:00
    @DavidNineRoc 故意抬杠
    fuchaofather
        23
    fuchaofather  
       2018-06-22 09:50:15 +08:00
    我们是这样的. 如果前端获取的是全部数据, 那就前端下. 否则后端文件流.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3124 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.