How to change the name of file while exporting data to Excel?

前端 未结 6 382
清歌不尽
清歌不尽 2020-12-11 03:56

How do I change the name of file while exporting data to Excel?

相关标签:
6条回答
  • 2020-12-11 04:36

    here is an example which demonstrates Export HTML Table to Excel With Custom File Name: http://www.kubilayerdogan.net/javascript-export-html-table-to-excel-with-custom-file-name/

    0 讨论(0)
  • 2020-12-11 04:36

    Not only for excel, in addition, for many kind of format can useable.

     var element = document.createElement('a');
                element.setAttribute('href', 'data:application/vnd.ms-excel,' + encodeURIComponent(htmlTable));
                element.setAttribute('download', fileName);
                element.style.display = 'none';
                document.body.appendChild(element);
                element.click();
                document.body.removeChild(element);
    

    https://ourcodeworld.com/articles/read/189/how-to-create-a-file-and-generate-a-download-with-javascript-in-the-browser-without-a-server

    0 讨论(0)
  • 2020-12-11 04:44
    Response.AddHeader "Content-Disposition", "attachment; filename=C:\YOURFILENAME.xls;"
    
    0 讨论(0)
  • 2020-12-11 04:54

    I had the same issue, and since the new format (maybe not supported by every browser) <a download=""></a> the following worked fine for me. This use directly HTML/Javascript without the PHP server part, because using a submit form is too heavy for big data tables.

    • changing <button> to <a>
    • no more window.open()
    • using the basic <a> behavior (so, no more e.preventDefault()) but changing href to data:blabla and adding download="filename" :
    <div id="example" class="k-content">
        <a href="#" id="btnExport" >Export to csv!</a>
        <div id="grid"></div>
    </div>
    <script>
        $("#btnExport").click(function (e) {
            var result = "data:application/vnd.ms-excel,";
            this.href = result;
            this.download = "my-custom-filename.xls";
            return true;
        });
    </script>
    
    0 讨论(0)
  • 2020-12-11 04:59

    You can't do this with client-side JavaScript, you need to set the response header...

    .NET

    Response.AddHeader("Content-Disposition", "inline;filename=filename.xls")
    

    Or PHP

    $filename = 'somehting.xls';
    
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    
    0 讨论(0)
  • 2020-12-11 05:02
    var a = document.createElement('a');
    //getting data from our div that contains the HTML table
    var data_type = 'data:application/vnd.ms-excel';
    a.href = data_type + ', ' + encodeURIComponent(tab_text);
    //setting the file name
    a.download = 'SupervisorReport.xls';
    //triggering the function
    a.click();
    //just in case, prevent default behaviour
    e.preventDefault();
    return (a);
    
    0 讨论(0)
提交回复
热议问题