In one of the project, I needed to create the CSV file from the html using jQuery.
To make this possible, I created the below code to convert the html into csv file using jQuery.
<script type="text/javascript" src="jquery.min.js"></script>
<hr>
<div id="dvData">
<table class="mustBe" border="1">
<tr>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
<tr>
<td>1</td>
<td>Rs. 1,22.5</td>
<td>3</td>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
<tr>
<td>4</td>
<td>5.121</td>
<td>6.91</td>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
<tr>
<td>7</td>
<td>212 8.11</td>
<td>9</td>
<td>Column One</td>
<td>Column Two</td>
<td>Column Three</td>
</tr>
</table>
<table>
<tr>
<td>Column One-1</td>
<td>Column Two-2</td>
<td>Column Three-3</td>
</tr>
<tr>
<td>1</td>
<td>Rs. 1,22.5</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5.121</td>
<td>6.91</td>
</tr>
<tr>
<td>7</td>
<td>212 8.11</td>
<td>9</td>
</tr>
</table>
<table class="mustBe" border="1">
<tr>
<td>Column One-1</td>
<td>Column Two-2</td>
<td>Column Three-3</td>
</tr>
<tr>
<td>19</td>
<td>Rs. 1,22.5</td>
<td>09/10/2013 08:09:59</td>
</tr>
<tr>
<td>4</td>
<td>5.121</td>
<td>09/10/2013 08:09:59</td>
</tr>
<tr>
<td>7</td>
<td>$212 8.11</td>
<td>09/10/2013 08:09:59</td>
</tr>
<tr>
<td>7</td>
<td>$2128.11</td>
<td>09/10/2013 08:09:59</td>
</tr>
<tr>
<td>7.9191,27u28</td>
<td>212 8.11</td>
<td>9</td>
</tr>
</table>
</div>
<br/>
<div class="newTableHtml" style="display:none"></div>
<a href="#" class="export">Export Table</a>
<script>
$(document).ready(function () {
function exportTableToCSV($table, filename) {
var $rows = $table.find('tr:has(td)'),
tmpColDelim = String.fromCharCode(11), // vertical tab character
tmpRowDelim = String.fromCharCode(0), // null character
// actual delimiter characters for CSV format
colDelim = '","',
rowDelim = '"\r\n"',
// Grab text from table into CSV formatted string
csv = '"' + $rows.map(function (i, row) {
var $row = $(row),
$cols = $row.find('td');
return $cols.map(function (j, col) {
var $col = $(col),
text = $col.text();
return text.replace('"', '""'); // escape double quotes
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + '"',
// Data URI
csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
$(this)
.attr({
'download': filename,
'href': csvData,
'target': '_blank'
});
}
$(".export").on('click', function (event) {
var date = new Date(),
output = document.getElementById( 'output' ),
dateString = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear().toString().substr(2,2);
var i = 1;
var dateTable = "<table><tr><td>DATE: </td><td>"+dateString+"</td></tr</table><br/>";
var newTable ="";
//alert(dateTable); return false;
$('table').each(function(){
if($(this).hasClass('mustBe')) {
var html = $(this).html();
<br/>";
newTable += "<table><tr><td></td></tr><tr><td>-----------REPORT-"+i+"-------------</td></tr>"+html+"<tr><td></td></tr><tr><td></td></tr></table><br/><br/>";
i++;
}
});
$('.newTableHtml').html(dateTable+newTable);
exportTableToCSV.apply(this, [$('.newTableHtml'), 'export.csv']);
});
});
</script>
0 Comment(s)