2017-10-04 3 views
0

Ich habe dieses Stück Code, der HTML-Tabelle exportiert und in Excel. Mein Problem ist, wenn der Datei-Download-Dialog geöffnet wird, der Dateiname ist immer "download.xls". Gibt es eine Möglichkeit, den Namen der Datei zu ändern?Ändern Sie den Namen der heruntergeladenen Datei

Der Kodex ist hier, die auf eine Schaltfläche klicken und die ID der Tabelle aufgerufen wird, wird bis zum exporToExcel fucntion geben:

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 
    } 
}); 

Antwort

Verwandte Themen