我希望使用JavaScript在客户端创建和保存大型的 .csv 文件。此前已经有人提出并解答了这个问题(参见例如 1、2、3 或 4)。针对该问题,有两种方法可供选择(当然还有其他方法)。
Use FileSaver.js to implement w3c’s
saveAs()
:var lines = ["line 1,cell 11,cell 12\n","line 2,cell 21,cell 22\n"]; var type = "text/csv;charset=utf-8"; var blob = new Blob(lines,{"type":type}); saveAs(blob,"download.csv");
Use
a[download]
and a data uri:var lines = ["line 1,cell 11,cell 12\n","line 2,cell 21,cell 22\n"]; var type = "text/csv;charset=utf-8"; var downloader = $('<a download href="data:'+type+','+escape(lines.join(''))+'"></a>') .appendTo("body") downloader[0].click(); downloader.remove();
lines
太大了。因此,我希望将文件保存到硬盘上,而不必在javascript的内存中创建整个对象。类似于“blob=new Blob(); saveAs(blob); blob.append(lines);”的顺序。 - Teepeemm