【问题标题】:Is it possible to create a file on the client side using JavaScript/AJAX? [duplicate]是否可以使用 JavaScript/AJAX 在客户端创建文件? [复制]
【发布时间】:2016-09-14 02:28:26
【问题描述】:

是否可以使用 Javascript/AJAX 和服务器端响应(例如字符串)在客户端生成文件,然后打开此文件下载窗口?例如一个简单的.txt

如果可能的话,是否有任何解决方案可以生成.xlsx 文件?

【问题讨论】:

  • 不,JS 不能访问文件系统,但是根据你想要创建的文件类型和你想用它做什么,你可能能够为一个文件生成一个 dataURI..
  • 当然:Ajax 不适合这个 ^^ 只是为了好奇。

标签: javascript ajax


【解决方案1】:

这将创建一个 CSV,您可以根据对象数组(window.EXPORTDATA)在 excel 中打开该 CSV:

        var csvContent = [];

        for(var i=0; i<window.EXPORTDATA.length; i++){
          var rowContent = [];
          var row = window.EXPORTDATA[i];
          if(csvContent.length === 0){
            for(var p in row)
              if(row.hasOwnProperty(p))
                rowContent.push('"'+ (""+p).replace('"','').replace(',','') +'"');
            csvContent.push("data:text/csv;charset=utf-8,"+rowContent.join(","));
            rowContent = [];
          }
          for(var p in row){
            if(row.hasOwnProperty(p))
              rowContent.push('"'+ (""+row[p]).replace('"','').replace(',','') +'"');
          }
          csvContent.push(rowContent.join(","));
        }

        var dat = csvContent.join("\n");
        var encodedUri = encodeURI(dat);
        window.open(encodedUri);

这是一个fiddle.. 当您运行它时,它会要求您在 Excel 或任何您使用的文件中打开文件..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2010-09-14
    • 2010-09-05
    相关资源
    最近更新 更多