有没有一种方法可以使用纯JavaScript (离线、本地)创建CSV文件并将该文件下载到本地文件系统?该方法应适用于IE9或更低版本。
我尝试过downloadify,但跨域问题使我无法在本地使用它。我还尝试创建Base64编码的字符串并发出文本/csv数据URI,但IE似乎不支持这种特定情况下的数据URI。
发布于 2014-06-18 20:23:52
如果你想用正确的utf8在excel 2013中打开csv,你应该将utf8 bom添加到dinesh ygv代码中,如下所示:
<a id="export" class="myButton" download="" href="#">export</a>
<script>
function createDownloadLink(anchorSelector, str, fileName){
if(window.navigator.msSaveOrOpenBlob) {
var fileData = ['\ufeff'+str];
blobObject = new Blob(fileData);
$(anchorSelector).click(function(){
window.navigator.msSaveOrOpenBlob(blobObject, fileName);
});
} else {
var url = "data:text/plain;charset=utf-8,%EF%BB%BF" + encodeURIComponent(str);
$(anchorSelector).attr("download", fileName);
$(anchorSelector).attr("href", url);
}
}
$(function () {
var str = "hi,file";
createDownloadLink("#export",str,"file.txt");
});
</script>发布于 2013-12-27 14:52:49
以下方法适用于IE11+、火狐25+和Chrome 30+:
<a id="export" class="myButton" download="" href="#">export</a>
<script>
function createDownloadLink(anchorSelector, str, fileName){
if(window.navigator.msSaveOrOpenBlob) {
var fileData = [str];
blobObject = new Blob(fileData);
$(anchorSelector).click(function(){
window.navigator.msSaveOrOpenBlob(blobObject, fileName);
});
} else {
var url = "data:text/plain;charset=utf-8," + encodeURIComponent(str);
$(anchorSelector).attr("download", fileName);
$(anchorSelector).attr("href", url);
}
}
$(function () {
var str = "hi,file";
createDownloadLink("#export",str,"file.txt");
});
</script>在实际操作中可以看到:JS Fiddle
Firefox和Chrome支持导航的数据URI,这允许我们通过导航到数据URI来创建文件,而IE出于安全目的不支持它。
另一方面,IE具有保存blob的API,可用于创建和下载文件。
发布于 2012-11-20 08:38:46
出于安全原因,不能在本地创建文件并将其保存到用户的文件系统。JavaScript根本不允许这样做。该文件将需要创建服务器端和用户将需要下载它。
编辑:实际上,您可以使用HTML5访问本地文件系统,但它显示为IE9 doesn't support the File API。
https://stackoverflow.com/questions/13464878
复制相似问题