0
我陷入了一種情況,我不得不重新命名我的excel文件。重命名轉換後的Excel文件AngularJS
場景:
我已經轉換成表格的Excel文件,這部分我已經成功完成,問題是,當我下載了它作爲下載文件:「Download.xls」我想重新命名爲「MYExcel.xls 」。
app.html
<button class="btn btn-link col-md-2" ng-click="exportToExcel('#tableToExport1')">Export</button>
app.js
$scope.exportToExcel=function(tableId){ // ex: '#my-table'
var exportHref=Excel.tableToExcel(tableId,'WireWorkbenchDataExport');
console.log(location.href)
$timeout(function(){location.href=exportHref;},100); // trigger download
}
Excel.service.js
.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));
console.log(ctx)
return href;
}
};
});
說如果我使用xlsx會損壞 –
但對xls很好用 –
xls和xlsx是兩種非常不同的文件格式。確保使用與您生成的文件相符的擴展名。 – Salketer