是否可以使用 JavaScript/AJAX 在客户端创建文件? [复制]
Posted
技术标签:
【中文标题】是否可以使用 JavaScript/AJAX 在客户端创建文件? [复制]【英文标题】:Is it possible to create a file on the client side using JavaScript/AJAX? [duplicate] 【发布时间】:2016-09-14 02:28:26 【问题描述】:是否可以使用 javascript/AJAX 和服务器端响应(例如字符串)在客户端生成文件,然后打开此文件下载窗口?例如一个简单的.txt
。
如果可能的话,是否有任何解决方案可以生成.xlsx
文件?
【问题讨论】:
不,JS 不能访问文件系统,但是根据你想要创建的文件类型和你想用它做什么,你可能能够为一个文件生成一个 dataURI.. 当然: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 或任何您使用的文件中打开文件..
【讨论】:
以上是关于是否可以使用 JavaScript/AJAX 在客户端创建文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当用户到达页面末尾以加载新内容时,如何调用 JavaScript (AJAX) 函数?