如何使用Javascript创建和下载csv文件?

时间:2013-12-30 16:14:13

标签: javascript csv internet-explorer-8 internet-explorer-9 encodeuricomponent

我在一个按钮中有这个代码:

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

这适用于Chrome,Safari和Firefox - 但不是IE8 - 我需要兼容Internet Explorer 8。

当我点击调用上面代码的按钮时,会将.csv文件下载到我的电脑上 当我点击IE8中的按钮时,它会打开一个新的IE8窗口,其中包含地址栏中的所有csv内容,并且不会下载(或要求下载)任何内容。

不幸的是,我必须兼容IE8。我怎样才能做到这一点?

编辑:我必须避免对服务器的任何其他调用。一切都需要在客户端发生。目前,除了IE8(可能还有IE9)之外,所有浏览器都可以使用。

Edit2:当我将最后一行更改为“document.location.href = encodedUri;”时它仍然适用于所有其他浏览器,但在IE8中,当我点击按钮时,我得到一个错误窗口,上面写着“传递给系统调用的数据区域太小了”。知道那是什么告诉我的吗?

1 个答案:

答案 0 :(得分:0)

"数据:文本/ CSV;"是HTML5所以它不适用于IE8,我能够使用ActivexObject解决这个问题,但它将文件写入用户的桌面而没有弹出窗口

var csv = new ActiveXObject("scripting.FileSystemObject");
var fLoc = csv.CreateTextFile(fileName);
fLoc.WriteLine(csvData);
fLoc.close();