2
respostas

Directive para exportar arquivo CSV

Olá, pessoal. Sou novo no angular e queria uma ajuda na directive que achei na internet para exportar arquivo csv, o mesmo funciona perfeitamente mas ele exporta os dados que estão na table, eu queria aproveitar essa mesma derecitve para consultar dados do banco e trazer todas a informações, segue o código

omniApp.directive('exportToCsv',function(){
      return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            var el = element[0];
            element.bind('click', function(e){
                var table = e.target.nextElementSibling;
                var csvString = '';
                for(var i=0; i<table.rows.length;i++){
                    var rowData = table.rows[i].cells;
                    for(var j=0; j<rowData.length;j++){
                        csvString = csvString + rowData[j].innerHTML + ";";
                    }
                    csvString = csvString.substring(0,csvString.length - 1);
                    csvString = csvString + "\n";
                }
                 csvString = csvString.substring(0, csvString.length - 1);
                 var a = $('<a/>', {
                    style:'display:none',
                    href:'data:application/octet-stream;base64,'+btoa(csvString),
                    download:'emailStatistics.csv'
                }).appendTo('body')
                a[0].click()
                a.remove();
            });
        }
      }
});

<button export-to-csv>Download</button>

Quero fazer uma chamada Rest para buscar na base de dados e assim exportar no arquivo.

2 respostas

José, acredito que essas aulas do curso podem lhe ajudar nessa parte de comunicação com o back-end para pegar os dados: https://cursos.alura.com.br/course/angularjs-mvc/task/9115

O vídeo ainda não me ajudou, estou com dúvida ainda, eu queria fazer um consulta nessa diretiva "export-to-csv" e trazer um array de dados para que eu possa montar meu o arquivo csv