我正在为我的公司开发一个网络应用程序,它可以让我们做一些图像标记工作,我希望能够以CSV文件的形式生成结果。通过将CSV数据转储到页面上的div或某些内容并让用户将其复制出来,我可以轻松地做到这一点。我宁愿让他们点击一个生成按钮并下载一个CSV文件,好像他们点击了结果的链接,这样他们就可以更方便地将文件保存到方便的地方。
用javascript模拟这种东西有可能吗?我基本上想要动态生成文件然后让它们下载它,客户端。
答案 0 :(得分:8)
您可以使用媒体类型text/csv
创建data: URI,并在现代浏览器中创建指向它的链接,或直接导航到它。
它在IE中不起作用。 (IE8可以在有限的情况下支持data:
,这对你来说没有帮助。)至少对于那个浏览器,你需要回到cut-n-paste或服务器后端。
答案 1 :(得分:0)
我写了一个轻量级的客户端CSV生成器库,可能会派上用场。在http://atornblad.se/github/ 上查看(向下滚动到标题为客户端CSV文件生成器)
它需要一个正常的FileSaver
实现来处理对window.saveAs()
的调用。在http://eligrey.com/blog/post/saving-generated-files-on-the-client-side
在适当的位置,您只需动态生成并保存CSV文件,如下所示:
var propertyOrder = ["name", "age", "height"];
var csv = new Csv(propertyOrder);
csv.add({ name : "Anders",
age : 38,
height : "178cm" });
csv.add({ name : "John Doe",
age : 50,
height : "184cm" });
csv.saveAs("people.csv");