2017-10-04 87 views
0

我有這段代碼導出和HTML表格到Excel。我的問題是當文件下載對話框打開時,文件名總是「download.xls」。有沒有辦法改變文件的名字?正在下載的文件的更改名稱

的代碼是在這裏被稱爲上的按鈕,點擊表格的ID是通過對exporToExcel溫控功能通過:

https://codepen.io/anon/pen/gGxNxV

var myApp=angular.module("myApp",[]); 
myApp.factory('Excel',function($window){ 
    var uri='data:application/vnd.ms-excel;base64,', 
     template='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>', 
     base64=function(s){return $window.btoa(unescape(encodeURIComponent(s)));}, 
     format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){return c[p];})}; 
    return { 
     tableToExcel:function(tableId,worksheetName){ 
      var table=$(tableId), 
       ctx={worksheet:worksheetName,table:table.html()}, 
       href=uri+base64(format(template,ctx)); 
      return href; 
     } 
    }; 
}) 
.controller('MyCtrl',function(Excel,$timeout,$scope){ 
    $scope.exportToExcel=function(tableId){ // ex: '#my-table' 
     var exportHref=Excel.tableToExcel(tableId,'WireWorkbenchDataExport'); 
     $timeout(function(){location.href=exportHref;},100); // trigger download 
    } 
}); 

回答