Ciao,
non riesco ad esportare una tabella in un csv.
questa è la semplice tabella:
tramite jquery ho trovato questo plugin:codice:<table border="1" id="tabelId"> <tr> <th>Heading</th> <th>Another Heading</th> </tr> <tr> <td>row 1, cell 1</td> <td>row 1, cell 2</td> </tr> <tr> <td>row 2, cell 1</td> <td>row 2, cell 2</td> </tr> </table>
il contenuto della tabella mi viene correttamente inserito in una text area ma a me serve inserirlo in un file e far uscire il popup sul browser per salvare il file.codice:jQuery.fn.tableCSV = function(options) { var options = jQuery.extend({ separator: ',', header: [], delivery: 'popup' // popup, value }, options); var csvData = []; var headerArr = []; var el = this; //header var numCols = options.header.length; var tmpRow = []; // construct header avalible array if (numCols > 0) { for (var i = 0; i < numCols; i++) { tmpRow[tmpRow.length] = formatData(options.header[i]); } } else { $(el).filter(':visible').find('th').each(function() { if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).html()); }); } row2CSV(tmpRow); // actual data $(el).find('tr').each(function() { var tmpRow = []; $(this).filter(':visible').find('td').each(function() { if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).html()); }); row2CSV(tmpRow); }); if (options.delivery == 'popup') { var mydata = csvData.join('\n'); return popup(mydata); } else { var mydata = csvData.join('\n'); return mydata; } function row2CSV(tmpRow) { var tmp = tmpRow.join('') // to remove any blank rows // alert(tmp); if (tmpRow.length > 0 && tmp != '') { var mystr = tmpRow.join(options.separator); csvData[csvData.length] = mystr; } } function formatData(input) { // replace " with “ var regexp = new RegExp(/["]/g); var output = input.replace(regexp, "“"); //HTML var regexp = new RegExp(/\<[^\<]+\>/g); var output = output.replace(regexp, ""); if (output == "") return ''; return '"' + output + '"'; } function popup(data) { var generator = window.open('', 'csv', 'height=400,width=600'); generator.document.write('<html><head><title>CSV</title>'); generator.document.write('</head><body >'); generator.document.write('<textArea cols=70 rows=15 wrap="off" >'); generator.document.write(data); generator.document.write('</textArea>'); generator.document.write('</body></html>'); generator.document.close(); return true; } };
ho provato a modificare la funzione popup(data) del plugin con
fin qui tutto ok...codice:function popup(data) { window.location='data:text/csv;charset=utf8,' + encodeURIComponent(data); return true; }
pero ora non riesco ad impostare il nome al file e poi a farlo salvare in formato csv...
salvando il file mi esce una cosa strana del tipo 434kjhdfsk.part1
potete aiutarmi?

Rispondi quotando