【问题标题】:Dynamically generating a file with javascript?用javascript动态生成文件?
【发布时间】:2010-03-16 15:43:57
【问题描述】:

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

可以用javascript模拟这种事情吗?我基本上想动态生成文件,然后让他们下载它,客户端。

【问题讨论】:

    标签: javascript csv


    【解决方案1】:

    您可以创建一个媒体类型为text/csvdata: URI,并在现代浏览器中创建指向它的链接或直接导航到它。

    它在 IE 中不起作用。 (IE8 可以在有限的情况下支持data:,这对您没有帮助。)至少对于该浏览器,您需要退回到剪切粘贴或服务器后端。

    【讨论】:

    • 呸。击败我 14 秒 ;)
    【解决方案2】:

    我编写了一个轻量级的客户端 CSV 生成器库,它可能会派上用场。在http://atornblad.se/github/ 上查看它(向下滚动到标题为客户端 CSV 文件生成器

    它需要一个有效的FileSaver 实现来处理对window.saveAs() 的调用。在 http://eligrey.com/blog/post/saving-generated-files-on-the-client-side 上查看 Eli Grey 的解决方案

    到位后,您只需像这样即时生成并保存 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");
    

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多