2016-09-20 2 views
0

Я нажимаю на кнопку, и эта функция запускается для экспорта в файл .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); 
} 

+0

Возможный дубликат [Изменение имени загрузки html] (http://stackoverflow.com/questions/10037273/changing-the-name-of-an-html-download) – Cruiser

+0

проверить возможное решение здесь: http : //stackoverflow.com/questions/19327749/javascript-blob-filename-without-link –

ответ

0

Возможно, вы можете ознакомиться с этим хорошим блогом от «Kubilay Erdogan» по следующей ссылке.

http://www.kubilayerdogan.net/javascript-export-html-table-to-excel-with-custom-file-name/

В основном то, что он делает,

  1. Получает HTML-код вашей таблицы внутри сНу элемента.
  2. Заменяет места в коде правильным синтаксисом для Excel (в противном случае пробелы будут удалены в листе Excel).
  3. Создает определенное имя файла (в минутах), чтобы избежать переопределения старых файлов и обеспечения архивации по дате.
  4. И, наконец, самое главное, сохранить файл с именем пользовательского файла.

Надеюсь, это поможет!