有哪些 js 插件,能把 js 前端的数据转成文件下载的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
tctc4869
V2EX    Javascript

有哪些 js 插件,能把 js 前端的数据转成文件下载的?

  •  
  •   tctc4869 2020-05-22 08:59:55 +08:00 3229 次点击
    这是一个创建于 2044 天前的主题,其中的信息可能已经有所发展或是发生改变。

    后端的文件下载,不同的 mvc 框架,处理是不同的,有些麻烦,因此我对于数据下载,我偏向于先弄到 web 前端,然后用过 web 前端的 把 js 数据,例如 把 js 的 json 数据 转成文件下载,例如 excel,txt,pdf 。

    对于这方面,各位知道哪些呢,对于表格数据的下载,除了把表格转 excel,还有直接定制 html 内容转成 pdf 下载的么?

    第 1 条附言    2020-05-22 14:21:13 +08:00
    假若我有一个比较复杂 json 数据(有键值对,也有集合),在前端 js 环境中,我要把这个 json 数据进行可自定义的可视化显示(通过模板引擎以及模板代码,将 json 的数据可视化成带有文字行段落和表格的内容,比如 html 的内容,或者是 markdown 格式的内容),然后在把内容显示的效果转化成单个文件( html 或 md 文件)下载到本地,在本地可通过浏览器或者是 markdown 软件查看。这个 js 能做到么?
    15 条回复    2020-05-23 08:05:15 +08:00
    lululau
        1
    lululau  
       2020-05-22 09:22:22 +08:00 via iPhone
    导出数据就 csv 吧,别惯那些臭毛病
    jydeng
        2
    jydeng  
       2020-05-22 09:25:27 +08:00
    html => canvas => pdf
    html2canvas 、jspdf 坑多,要谨慎。
    dixeran
        3
    dixeran  
       2020-05-22 09:50:41 +08:00 via Android
    写 @media print 样式,然后调用浏览器的打印
    sadfQED2
        4
    sadfQED2  
       2020-05-22 12:40:43 +08:00 via Android
    csv +1
    tctc4869
        5
    tctc4869  
    OP
       2020-05-22 12:42:24 +08:00
    @jydeng 问一下,如果要把 html 弄的好看点,可能得引用插件,在转成单个 pdf 文件,这个在 js 里有什么方式可以实现?
    tctc4869
        6
    tctc4869  
    OP
       2020-05-22 12:44:16 +08:00
    @tctc4869
    @jydeng

    比如我要把引用一些 js 和 css 插件,依据 url,在生成 html,填入引用,然后转成 pdf 或单个文件,这个有什么好的方式么?
    jydeng
        7
    jydeng  
       2020-05-22 13:10:52 +08:00
    @tctc4869 可以,html2Canvas 就是把你看到的页面转成 canvas.
    SilentDepth
        8
    SilentDepth  
       2020-05-22 13:53:03 +08:00
    文本类的数据转成 Blob 然后 createObjectURL 就可以交给 <a> 下载了。

    其他复杂类型的先用工具库封装( xlsx.js 、pdf.js 等),然后同样转成 Blob 再下载。

    Canvas 的话,可以考虑 Pico,质量比 html2canvas 高很多。
    Cbdy
        9
    Cbdy  
       2020-05-22 13:57:28 +08:00
    tctc4869
        10
    tctc4869  
    OP
       2020-05-22 14:20:17 +08:00
    @SilentDepth 问一下,假若我有一个比较复杂 json 数据(有键值对,也有集合),在前端 js 环境中,我要把这个 json 数据进行可自定义的可视化显示(通过模板引擎以及模板代码,将 json 的数据可视化成带有文字行段落和表格的内容),然后在把内容显示的效果转化成单个文件( html 或 md 文件)下载到本地,在本地可通过浏览器或者是 markdown 软件查看。这个 js 能做到么?
    SilentDepth
        11
    SilentDepth  
       2020-05-22 14:23:55 +08:00
    @tctc4869 #10 如果是转化成文本数据( HTML 、MD ),把 JSON 看做 AST,其实就是个 Transform 的过程,拼装好目标字符串就行了。
    tctc4869
        12
    tctc4869  
    OP
       2020-05-22 14:35:19 +08:00
    @SilentDepth
    如果有引用的图片和引用的 js 和 css 资源,要怎么办?把这些下载到本地也是可以,
    但我要想要下载的时候都装进一个文件里,这个要在 js 里要怎么弄,有演示连接么。
    SilentDepth
        13
    SilentDepth  
       2020-05-22 14:46:50 +08:00
    @tctc4869 #12 压缩,例如用 jszip 。
    lblblong
        14
    lblblong  
       2020-05-22 17:51:40 +08:00
    Xezzon
        15
    Xezzon  
       2020-05-23 08:05:15 +08:00 via Android
    function down(data) {
    let download = document.createElement("a")
    download.href = "data:text/json;utf-8," + JSON.stringify(data)
    download.download = "文件名.json"
    download.click()
    }
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4323 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 01:04 PVG 09:04 LAX 17:04 JFK 20:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86