Descargando tablas en CSV


Este es un pequeño ejemplo, que me ha resultado util varias veces, por el cual podemos descargar una tabla HTML en formato CSV a traves de Javascript. El codigo se divide en dos partes: la primera que lee la tabla y la devuelve en forma de array; y la segunda que crea un CSV a partir de dicho array y lo "lanza" como una descarga. Espero que os sirva.


<script>

    function table_array(table) {
        var result = []
        var rows = table.rows;
        var cells, t;

        for (var i=0, iLen=rows.length; i<iLen; i++) {
            cells = rows[i].cells;
            t = [];

            for (var j=0, jLen=cells.length; j<jLen; j++) {
                t.push(cells[j].textContent);
            }
            result.push(t);
        }
        return result; 
    }

    function download_csv() {

        var data = table_array(document.getElementsByTagName('table')[0]);

        var csv = '';
        data.forEach(function(row) {
            csv += row.join(',');
            csv += "\n";
        });

        var hiddenElement = document.getElementById('enlace_escondido');
        hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
        hiddenElement.target = '_blank';
        hiddenElement.download = 'tabla.csv';
        hiddenElement.click();
    }

</script>
<button onclick="download_csv()">Descargar tabla</button>
<a style="display: none;" id="enlace_escondido"></a>
<table>
    ...
</table>

Comentarios

Entradas populares de este blog

Obtener provincia a traves del codigo postal con Javascript

GUI en Python con Glade

Conversor de imagenes a Base64