Skip to content

Instantly share code, notes, and snippets.

@cbertelegni
Last active April 19, 2017 04:20
Show Gist options
  • Save cbertelegni/5705942 to your computer and use it in GitHub Desktop.
Save cbertelegni/5705942 to your computer and use it in GitHub Desktop.
Convierte tabla #HTML a #CSV y exporta la misma.

$.toCSV Plugin: Convierte tabla HTML a CSV y exporta la misma.

Ejemplo de uso:

  • incluir jquery.toCSV.min.js en el head.
$("table").toCSV();
<!DOCTYPE html>
<html>
<head>
<title>Test export csv</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script>
<script type="text/javascript" src="jquery.toCSV.min.js"> </script>
<script>
function exportar(){
$("table").toCSV();
}
</script>
</head>
<body>
<h1>Test Tabla a CSV</h1>
<p>Hacé click en el botón para convertir la data.</p>
<button onclick="exportar()" download="your-foo.csv">Exportar CSV</button>
<table border="1" cellpadding="2" cellspacing="0">
<tr style="font-weight: bold; background-color: #aaa;">
<td>A&ntilde;o</td><td>Selecci&oacute;n</td><td>Sitio</td><td>Diferencia puestos</td><td>Diferencia puntos</td><td>Number of Records</td><td>Posici&oacute;n anterior</td><td>Puesto</td><td>Puntos anterior</td><td>Puntos</td>
</tr>
<tr style="background-color: #f0f0f0">
<td>Ene 2013</td><td>Argentina</td><td>http://espndeportes.espn.go.com/futbol/equipo/_/equipo/202/argentina</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">3</td><td align="right">3</td><td align="right">1290</td><td align="right">1290</td>
</tr>
<tr style="background-color: #ffffff">
<td>Feb 2013</td><td>Argentina</td><td>http://espndeportes.espn.go.com/futbol/equipo/_/equipo/202/argentina</td><td align="right">0</td><td align="right">-9</td><td align="right">1</td><td align="right">3</td><td align="right">3</td><td align="right">1290</td><td align="right">1281</td>
</tr>
<tr style="background-color: #f0f0f0">
<td>Ene 2013</td><td>Colombia</td><td>http://espndeportes.espn.go.com/futbol/equipo/_/equipo/208/colombia</td><td align="right">0</td><td align="right">0</td><td align="right">1</td><td align="right">5</td><td align="right">5</td><td align="right">1164</td><td align="right">1164</td>
</tr>
<tr style="background-color: #ffffff">
<td>Feb 2013</td><td>Colombia</td><td>http://espndeportes
jQuery.fn.toCSV = function() {
var data = $(this).first(); //Only one table
var csvData = [];
var tmpArr = [];
var tmpStr = '';
data.find("tr").each(function() {
var th=$(this).find("th");
if(th.length) {
th.each(function() {
tmpStr = $(this).text().replace(/"/g, '""');
tmpArr.push('"' + tmpStr + '"');
});
csvData.push(tmpArr);
} else {
tmpArr = [];
$(this).find("td").each(function() {
if($(this).text().match(/^-{0,1}\d*\.{0,1}\d+$/)) {
tmpArr.push(parseFloat($(this).text()));
} else {
tmpStr = $(this).text().replace(/"/g, '""');
tmpArr.push('"' + tmpStr + '"');
}
});
csvData.push(tmpArr.join(','));
}
});
var output = csvData.join('\n');
var uri = 'data:text/csv;charset=utf-8,' + encodeURIComponent(output);
var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = document.title ? document.title.replace(/ /g, "_") + ".csv" : "data.csv";
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
jQuery.fn.toCSV=function(){var data=$(this).first();var csvData=[];var tmpArr=[];var tmpStr='';data.find("tr").each(function(){var th=$(this).find("th");if(th.length){th.each(function(){tmpStr=$(this).text().replace(/"/g,'""');tmpArr.push('"'+tmpStr+'"')});csvData.push(tmpArr)}else{tmpArr=[];$(this).find("td").each(function(){if($(this).text().match(/^-{0,1}\d*\.{0,1}\d+$/)){tmpArr.push(parseFloat($(this).text()))}else{tmpStr=$(this).text().replace(/"/g,'""');tmpArr.push('"'+tmpStr+'"')}});csvData.push(tmpArr.join(','))}});var output=csvData.join('\n');var uri='data:text/csv;charset=utf-8,'+encodeURIComponent(output);var downloadLink=document.createElement("a");downloadLink.href=uri;downloadLink.download=document.title?document.title.replace(/ /g,"_")+".csv":"data.csv";document.body.appendChild(downloadLink);downloadLink.click();document.body.removeChild(downloadLink)}
@Gerardonv
Copy link

Que tal, se que este post es viejo pero si estas por hay podrias indicarme como quitar las ultimas 2 columnas de la tabla a exportar. saludos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment