首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Internet Explorer中脱机创建csv文件(客户端)

在Internet Explorer中脱机创建csv文件(客户端)
EN

Stack Overflow用户
提问于 2012-11-20 08:34:31
回答 4查看 6.8K关注 0票数 3

有没有一种方法可以使用纯JavaScript (离线、本地)创建CSV文件并将该文件下载到本地文件系统?该方法应适用于IE9或更低版本。

我尝试过downloadify,但跨域问题使我无法在本地使用它。我还尝试创建Base64编码的字符串并发出文本/csv数据URI,但IE似乎不支持这种特定情况下的数据URI。

EN

回答 4

Stack Overflow用户

发布于 2014-06-18 20:23:52

如果你想用正确的utf8在excel 2013中打开csv,你应该将utf8 bom添加到dinesh ygv代码中,如下所示:

代码语言:javascript
复制
<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>
票数 5
EN

Stack Overflow用户

发布于 2013-12-27 14:52:49

以下方法适用于IE11+、火狐25+和Chrome 30+:

代码语言:javascript
复制
<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,可用于创建和下载文件。

票数 1
EN

Stack Overflow用户

发布于 2012-11-20 08:38:46

出于安全原因,不能在本地创建文件并将其保存到用户的文件系统。JavaScript根本不允许这样做。该文件将需要创建服务器端和用户将需要下载它。

编辑:实际上,您可以使用HTML5访问本地文件系统,但它显示为IE9 doesn't support the File API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13464878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档