使用javascript动态生成文件?

时间:2010-03-16 15:43:57

标签: javascript csv

我正在为我的公司开发一个网络应用程序,它可以让我们做一些图像标记工作,我希望能够以CSV文件的形式生成结果。通过将CSV数据转储到页面上的div或某些内容并让用户将其复制出来,我可以轻松地做到这一点。我宁愿让他们点击一个生成按钮并下载一个CSV文件,好像他们点击了结果的链接,这样他们就可以更方便地将文件保存到方便的地方。

用javascript模拟这种东西有可能吗?我基本上想要动态生成文件然后让它们下载它,客户端。

2 个答案:

答案 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

上查看Eli Gray的解决方案

在适当的位置,您只需动态生成并保存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");