【问题标题】:Export CSV using javascript and aspx使用 javascript 和 aspx 导出 CSV
【发布时间】:2014-06-11 10:53:13
【问题描述】:

单击 HTML 按钮时,我必须制作一个可下载的 CSV 文件。单击按钮时,我已经在我的 Javascript 中创建了 CSV 数据。我的问题是如何将数据写入 CSV 文件并使其可下载。我已尝试使用 HTML5 下载属性在客户端下载 CSV 文件。但 Internet Explorer 不支持 HTML5 下载属性。所以我需要知道如何将 CSV 数据传递给 ASPX 并使其可下载。请指教。提前致谢。

【问题讨论】:

    标签: javascript asp.net export-to-csv


    【解决方案1】:

    我有这个代码可以从网页下载 csv:

    JS函数:

    function downloadCSV(csv_out) {
       var blob = new Blob([csv_out], { type: 'text/csv;charset=utf-8' });
       var url = window.URL || window.webkitURL;
       var link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
       link.href = url.createObjectURL(blob);
       link.download = "filename.csv";
    
       var event = document.createEvent("MouseEvents");
       event.initEvent("click", true, false);
       link.dispatchEvent(event);
    }
    

    【讨论】:

    • Internet Explorer 不支持 HTML5 下载属性。这个我试过了。
    【解决方案2】:

    我假设您想要仅使用 Javascript 的解决方案。
    然后您可以执行以下操作:

    var looongCSVTEXT = ''
    document.location ='data:Application/vnd.ms-excel,' +
            encodeURIComponent(looongCSVTEXT);
    

    更新:

    在你的页面上添加

    <input type='hidden' id='Hidden' runat='server' />
    

    然后在 javascript 中(设置机制可能不同,取决于您如何将 CSV 数据设置为隐藏控件)

    $('button').on('click', function(){ $('#Hidden').val(CSVData);});
    

    然后从服务器端的隐藏控件中读取数据,and respond with excel file.
    如果不想save it to disk first read this

    【讨论】:

    • 我想将 CSV 数据传递给 aspx 并进行服务器端文件下载。
    • @user3729660 你的意思是你想把你在JS中创建的csv文件内容上传到服务器端,然后用excel文件从服务器文件响应给用户以便下载?
    • 是的。这就是我想要的。
    猜你喜欢
    • 2018-07-15
    • 2012-08-12
    • 1970-01-01
    • 2013-03-10
    • 2013-04-11
    • 1970-01-01
    • 2018-04-10
    • 2020-08-03
    • 2018-07-20
    相关资源
    最近更新 更多