2016-03-22 31 views
0

Her bir kanban durumunda kaldığı toplam hikaye sayısını gösteren özel bir rapor oluşturdum. Verileri rapordan CSV'ye aktarabilirim. Ancak indirilen excel sayfasının adı varsayılan olarak "download.xls" dir. Oluşturulan excel sayfası nasıl yeniden adlandırılır. Ayrıca excel dosyasını açtığımda, "Download.xls" dosya biçimi ve uzantısı "dont match.The dosya bozuk ya da güvensiz olabilir bir uyarı verir. Kaynağına güvenmiyorsanız, onu açmayın. Yine de açılsın mı? " Ama "evet" i tıkladığımda, dosya normalde verileri görüntüleyerek açılır. Bu uyarıdan kurtulmak istiyorum. Bu uyarının gerçekleşmemesi için kodlarımın herhangi bir yolu var mı? Nazik tavsiye. kodu: kod düğmesi oluşturmak için:Rallide oluşturulan excel sayfasını yeniden adlandır

var button =Ext.create('Ext.Button', { 
     text  : 'Export', 
     renderTo : Ext.getBody(), 
      handler: function() { 
       that.onClickExport(); 
      } 
     } 

});

var grid = Ext.create('Ext.grid.Panel', { 
      store: mydata, 
      id: 'taskgrid', 
      columns: [ 
      { 
       text: 'ID', 
       dataIndex: 'FormattedID', 
       locked:true, 
      }, 
      { 
       text: 'Story Name', 
       dataIndex: 'Name', 
       locked:true, 
      }, 
      { 
      text: 'Defined', 
      dataIndex: 'def', 
      lockable: false, 
      }, 
      { 
      text: 'In Dev', 
      dataIndex: 'dev', 
      lockable: false, 
      }, 
      { 
      text: 'Completed', 
      dataIndex: 'comp', 
      lockable: false, 
      } 
     ], 
     height: 300, 
     width: 400, 
     viewConfig: { 
      stripeRows: true 
     } 

    }); 
    this.add(button); 
    this.add(grid); 

CSV işlevine:

kod ızgara oluşturmak için

onClickExport: function() { 

if (/*@[email protected]*/0) { //Exporting to Excel not supported in IE 
    Ext.Msg.alert('Error', 'Exporting to CSV is not supported in Internet Explorer. Please switch to a different browser and try again.'); 
} else if (document.getElementById('taskgrid')) { 

    Ext.getBody().mask('Exporting the Report...'); 

    setTimeout(function() { 
     var 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>'; 

     var base64 = function (s) { 
      return window.btoa(unescape(encodeURIComponent(s))); 
     }; 
     var format = function (s, c) { 
      return s.replace(/{(\w+)}/g, function (m, p) { 
       return c[p]; 
      }) 
     }; 
     var table = document.getElementById('taskgrid'); 
     console.log("table :", table); 
     var excel_data = '<tr>'; 
     Ext.Array.each(table.innerHTML.match(/<span .*?x-column-header-text.*?>.*?<\/span>/gm), function (column_header_span) { 
      excel_data += (column_header_span.replace(/span/g, 'td')); 
     }); 
     excel_data += '</tr>'; 
     console.log("excel data: ",excel_data); 
     Ext.Array.each(table.innerHTML.match(/<tr class="x-grid-row.*?<\/tr>/gm), function (line) { 
     alert(line); 
      excel_data += line.replace(/[^\011\012\015\040-\177]/g, '>>'); 
     alert(line); 
     }); 
     var ctx = {worksheet: name || 'Worksheet', table: excel_data}; 
     window.location.href = 'data:application/vnd.ms-excel;base64,' + base64(format(template, ctx)); 
     Ext.getBody().unmask(); 
    }, 500); 
}else{ 
console.log("taskgrid does not exist"); 
} 

} });

var el = Ext.DomHelper.append(document.body, { 
      tag: "a", 
      download: '<yourFileName>.xls', 
      href: 'data:application/vnd.ms-excel;base64,' + base64(format(template, ctx)) 
}); 
el.click();  
Ext.fly(el).destroy(); 

cevap

0

excel yeniden adlandırma için yerine window.location.href = 'data:application/vnd.ms-excel;base64,' + base64(format(template, ctx));

kullanımı, şu kod aşağıdaki kodu kullanmalısınız. Ama yine de söz konusu uyarıdan kurtulabilmek için var mı? @ankit chaudhary

+0

teşekkür: – Rana

+0

Bunun için de çözüme ihtiyacım var –

İlgili konular