是否可以使用JavaScript/AJAX在客户端创建文件?
问题描述:
是否有可能在客户端使用Javascript/AJAX和服务器端响应(例如字符串)生成文件,然后打开此文件下载窗口?例如,一个简单的.txt
。是否可以使用JavaScript/AJAX在客户端创建文件?
如果有可能,是否有任何解决方案产生.xlsx
文件?
答
这将创建一个CSV,您可以在Excel中基于对象的数组上打开(window.EXPORTDATA):
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或任何你使用..
不,JS无法访问filsystem,但取决于你想创建的文件类型和你想要用它做什么,你可能能够生成一个dataURI的一个文件.. –
当然:Ajax不是为了这个^^它只是为了好奇。 –