Table To Excel
function buildHtmlTable(gridOptions, queryName) {
var table = document.createElement('table');
table.id = "excelDataTable";
document.body.appendChild(table);
var table$ = $('<table/>');
var columns = addAllColumnHeaders(gridOptions, table$);
for (var i = 0 ; i < gridOptions.data.length ; i++) {
var row$ = $('<tr/>');
for (var colIndex = 0 ; colIndex < columns.length ; colIndex++) {
var cellValue = null;
if (columns[colIndex].indexOf(".") > 0)
{
if (gridOptions.data[i][columns[colIndex].split(".")[0]] !== null){
cellValue = gridOptions.data[i][columns[colIndex].split(".")[0]][columns[colIndex].split(".")[1]];
}
else
cellValue = "";
} else
{
cellValue = gridOptions.data[i][columns[colIndex]];
if (columns[colIndex].indexOf("IsReady") > -1 || columns[colIndex].indexOf("IsMobile") > -1)
if (cellValue == false)
cellValue = "Hayır";
else
cellValue = "Evet";
else if (cellValue != null && columns[colIndex].indexOf("BoutiqueId") > -1)
cellValue = "" + cellValue;
}
if (cellValue == null) { cellValue = ""; }
if (cellValue != "") {
isIntAndValid(cellValue) == true &&
columns[colIndex].indexOf("PoId") == -1 &&
columns[colIndex].indexOf("BoutiqueId") == -1 &&
columns[colIndex].indexOf("BoutiqueSupplierId") == -1
? "" : cellValue = ("<div style='mso-number-format: \"\@\";'>" + cellValue + "</div>");
}
row$.append($('<td/>').html(cellValue.toString()));
// row$.append($('<td/>').html("'"+cellValue));
}
table$.append(row$);
//$("#excelDataTable").append(row$);
}
if (queryName == undefined)
queryName = 'Talep Listesi';
tableToExcel(table$.get(0), queryName);
};
function isIntAndValid(value) { //Deger 10001den kucukse ve sayi ise metne cevirme
return !isNaN(parseInt(value));
}
function addAllColumnHeaders(gridOptions, tbl) {
var columnSet = [];
var headerTr$ = $('<tr/>');
for (var j = 0; j < gridOptions.columnDefs.length; j++) {
if (gridOptions.columnDefs[j].visible == undefined) {
columnSet.push(gridOptions.columnDefs[j].name);
headerTr$.append('<th>' + gridOptions.columnDefs[j].displayName + '</th>');
}
}
tbl.append(headerTr$);
return columnSet;
};
var tableToExcel = (function () {
var uri = 'data:application/vnd.ms-excel; base64,'
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><meta http-equiv="content-type" content="text/html" charset="UTF-8"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
, base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
, format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) };
return function (table, name) {
if (!table.nodeType) table = document.getElementById(table)
var ctx = { worksheet: name || 'Worksheet', table: table.innerHTML }
var blob = new Blob([format(template, ctx)], { type: 'application/vnd.ms-excel', endings: 'native' });
var today = new Date();
var dt = today.toJSON().slice(0, 10).replace(new RegExp("-", 'g'), "");
window.saveAs(blob, name.replace(new RegExp(" ", 'g'), "") + '-' + dt + '.xls');
}
})();
window.saveAs || (window.saveAs = (window.navigator.msSaveBlob ? function (b, n) { return window.navigator.msSaveBlob(b, n); } : false) || window.webkitSaveAs || window.mozSaveAs || window.msSaveAs || (function () {
// URL's
window.URL || (window.URL = window.webkitURL);
if (!window.URL) {
return false;
}
return function (blob, name) {
var url = URL.createObjectURL(blob);
// Test for download link support
if ("download" in document.createElement('a')) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', name);
// Create Click event
var clickEvent = document.createEvent("MouseEvent");
clickEvent.initMouseEvent("click", true, true, window, 0,
event.screenX, event.screenY, event.clientX, event.clientY,
event.ctrlKey, event.altKey, event.shiftKey, event.metaKey,
0, null);
// dispatch click event to simulate download
a.dispatchEvent(clickEvent);
}
else {
// fallover, open resource in new tab.
window.open(url, '_blank', '');
}
};
})());