javascript - 导出时重命名下载文件

标签 javascript jquery html

我单击一个按钮,该函数运行以导出到 .xls 文件,但其名称是 download.xls - 我希望能够更改下载名称... 有谁知道如何添加此功能...

这是按钮的代码

<li class="button"><a href="javascript:;" onclick="fnExcelReport();"
    style="background-color: #4cae4c;">Export EXCEL</a></li>

这是脚本

function fnExcelReport()
{
    var tab_text = "<table border='2px'>"; 
        tab_text += "<tr bgcolor='#eeeeee' height='50'><th colspan='12' ";
        tab_text += "style='text-align:center; font-size:20px;'>COMPLETED "
        tab_text += "TRIPS </th></tr><tr bgcolor='#bf997e' height='50'"
        tab_text += "color='#FFFFFF'>"; 

    var i   = 0;
    var tab = document.getElementById('completed_trips_prov'); // id of table

    for(i = 0 ; i < tab.rows.length ; i++) 
    {     
        tab_text = tab_text + tab.rows[i].innerHTML+"</tr>";
        //tab_text=tab_text+"</tr>";
    }

    tab_text = tab_text + "</table>";
    //remove if u want links in your table
    tab_text = tab_text.replace(/<a[^>]*>|<\/a>/g, "");
    // remove if u want images in your table
    tab_text = tab_text.replace(/<img[^>]*>/gi,"");
    // reomves input params
    tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, "");

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE "); 

    // If Internet Explorer
    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))
    {
        txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus(); 
        sa = txtArea1.document.execCommand("SaveAs",true,"Say T.xls");
    }  
    //other browser not tested on IE 11
    else {            
        sa = window.open('data:application/vnd.ms-excel,'
            + encodeURIComponent(tab_text));
    }

    return (sa);
}

最佳答案

function fnExcelReport() {
     var tab_text = "<table border='2px'><tr bgcolor='#87AFC6'>";
     var textRange; var j = 0;
     tab = document.getElementById('tblData3'); // id of table

     for (j = 0 ; j < tab.rows.length ; j++) {
         tab_text = tab_text + tab.rows[j].innerHTML + "</tr>";
         //tab_text=tab_text+"</tr>";
     }

     tab_text = tab_text + "</table>";
     tab_text = tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
     tab_text = tab_text.replace(/<img[^>]*>/gi, ""); // remove if u want images in your table
     tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params

     var ua = window.navigator.userAgent;
     var msie = ua.indexOf("MSIE ");

     if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
     {
         txtArea1.document.open("txt/html", "replace");
         txtArea1.document.write(tab_text);
         txtArea1.document.close();
         txtArea1.focus();
         sa = txtArea1.document.execCommand("SaveAs", true, "Member_Clinical_Profile.xlsx");
     }
     else {//other browser not tested on IE 11
        // sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));
        // sa.document.title = "your new title";

        //new added by amit
     let a = $("<a />", {
             href: 'data:application/vnd.ms-excel,' + encodeURIComponent(tab_text),
             download: "YourFileName.xls"
         })
         .appendTo("body")
         .get(0)
         .click();
         e.preventDefault();
     }

     return (sa);
 }

关于javascript - 导出时重命名下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597813/

相关文章:

javascript - 在 React 中处理多个表单输入时,更好的 useState 或 useRef 是什么?

javascript - 创建可重用的 JavaScript 函数

javascript - 向 Node.js 类添加方法

javascript - 在 React 中,如何根据子组件计算父组件的宽度?

javascript - 如何获取js中字符串中下拉列表的值

javascript - jQuery 和 JS 变量到 fadeOut()

javascript - 在事先不知道的情况下设置 div 背景图像的高度和宽度

php - 如何删除 TCPDF 中标题下方和 $html 上方的行?

iPhone 视口(viewport)无响应 - 网页每次都在左上角缩放

javascript - 使 Div 在函数中可见时出错