js把数据保存为文本文件的方法

发布时间:2019-08-31编辑:脚本学堂
如何用js脚本将数据保存为文本文件,将用户在IE上选择的数据另存为一定格式的文件,保存为.txt或.xls文件等,需要的朋友参考下。

js把数据保存为文本文件

将用户在ie上选择的数据另存为一定格式的文件,如.txt、.xls等。

方法1,将请求发送给服务端,有服务端处理完成后作为响应发送给浏览器下载:
 

复制代码 代码示例:
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "text/plain";
Response.Write(data);

方法2,利用javascript 将浏览器上数据组织好,利用浏览器的另存为功能来实现:
 

复制代码 代码示例:
var w = window.open("about:blank", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
var dt = new Date();
w.document.charset = "gb2312";
w.document.write(exportData);
w.document.execCommand("SaveAs", false, dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate() + "-" + dt.getTime()+".txt");
w.close();

注意,SaveAs的方式虽然如上述代码设置了charset,但是默认浏览器仍然默认保存为unicode编码。

要点:怎么指定保存格式为GB2312?

可以利用try catch是浏览器对编码设置生效:
 

复制代码 代码示例:

var w = window.open("about:blank", "导出", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
var dt = new Date();w.document.write(exportData);

try{
 w.document.charset = "gb2312";
}

catch(err){ }
w.document.execCommand("SaveAs", false, dt.getFullYear() + "-" + (dt.getMonth()+1) + "-" + dt.getDate() + "-" + dt.getTime()+".txt");
w.close();

注意,去掉try catch会产生什么结果?
试验结果是窗口打开了,但是另存为的对话框没有出现。