后端的文件下载,不同的 mvc 框架,处理是不同的,有些麻烦,因此我对于数据下载,我偏向于先弄到 web 前端,然后用过 web 前端的 把 js 数据,例如 把 js 的 json 数据 转成文件下载,例如 excel,txt,pdf 。
对于这方面,各位知道哪些呢,对于表格数据的下载,除了把表格转 excel,还有直接定制 html 内容转成 pdf 下载的么?
1
lululau 2020 年 5 月 22 日 via iPhone
导出数据就 csv 吧,别惯那些臭毛病
|
2
jydeng 2020 年 5 月 22 日
html => canvas => pdf
html2canvas 、jspdf 坑多,要谨慎。 |
4
sadfQED2 2020 年 5 月 22 日 via Android
csv +1
|
6
tctc4869 OP |
8
SilentDepth 2020 年 5 月 22 日
文本类的数据转成 Blob 然后 createObjectURL 就可以交给 <a> 下载了。
其他复杂类型的先用工具库封装( xlsx.js 、pdf.js 等),然后同样转成 Blob 再下载。 Canvas 的话,可以考虑 Pico,质量比 html2canvas 高很多。 |
9
Cbdy 2020 年 5 月 22 日
|
10
tctc4869 OP @SilentDepth 问一下,假若我有一个比较复杂 json 数据(有键值对,也有集合),在前端 js 环境中,我要把这个 json 数据进行可自定义的可视化显示(通过模板引擎以及模板代码,将 json 的数据可视化成带有文字行段落和表格的内容),然后在把内容显示的效果转化成单个文件( html 或 md 文件)下载到本地,在本地可通过浏览器或者是 markdown 软件查看。这个 js 能做到么?
|
11
SilentDepth 2020 年 5 月 22 日
@tctc4869 #10 如果是转化成文本数据( HTML 、MD ),把 JSON 看做 AST,其实就是个 Transform 的过程,拼装好目标字符串就行了。
|
12
tctc4869 OP |
13
SilentDepth 2020 年 5 月 22 日
@tctc4869 #12 压缩,例如用 jszip 。
|
14
lblblong 2020 年 5 月 22 日
|
15
Xezzon 2020 年 5 月 23 日 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() } |