Ich brauche eine Hilfe. Ich muss die Datei während des Downloads mit Javascript/Angular.js umbenennen. Wirklich habe ich eine Funktionalität HTML-Tabelle zu Excel-Blatt konvertieren und herunterladen. Ich erkläre meinen Code unten.Wie kann ich Benutzern erlauben, die Datei während des Downloads mit Javascript umzubenennen
$scope.generateExcelSheet=function(){
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]; }) }
var table='exportable';
var name='Report';
// console.log('table',table,name);
if (!table.nodeType) table = document.getElementById(table)
var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
window.location.href = uri + base64(format(template, ctx));
}
Hier muss ich vor der Datei herunterladen wird es fragt Benutzer, um die Datei umzubenennen und dann herunterladen. Bitte hilf mir.
Können Sie Ihre Idee mit meinem Code teilen? Ich bin nicht völlig klar. – subhra
Welcher Ort benötigt einen Kommentar? Sie erstellen eine URL (nach 'uri + base64 (format (template, ctx));'). Anstatt es 'window.location' zuzuweisen, führen Sie die von mir beschriebenen Schritte durch. Erstellen Sie einen Anker, legen Sie seine href fest, legen Sie den Download fest, rufen Sie click() auf. – fdreger
OK, lass es mich tun. – subhra