I am using
var tableToExcel = (function() {
var uri = \'data:application/vnd.ms-excel;base64,\'
, template = \'
I used jspdf to get the desired results.Following points i achieved:-
1) This works in all versions of IE.
2) You can give the freeze column and freeze row options also in Excel
.
Libraries I used
1)downloadify.js
2)swfobject.js
3)downloadify.swf
Functions i used
1)getHtmlForExport(); // gives the html of the table to be exported.
2)tableToExcel();// converts html code to Microsoft Excel specific XML code
3)handleExcelExport();// downloads excel specific XML to excel file.
var tableToExcel = function (table, horizontalFreezeRowNo, VerticalFreezeRowNo) {
var worksheetString = '';
//worksheet freeze pane options
worksheetString += '2 ';
if (horizontalFreezeRowNo !== undefined)
worksheetString += '' + horizontalFreezeRowNo + ' ' + horizontalFreezeRowNo + ' ';
if (VerticalFreezeRowNo !== undefined)
worksheetString += '' + VerticalFreezeRowNo + ' ' + VerticalFreezeRowNo + ' ';
worksheetString += ' ';
var template = '{table}
'
, format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
})
};
if (!table.nodeType)
table = document.getElementById(table)
var ctx = {
table: table.innerHTML
}
$("#exportTable").remove();
return format(template, ctx)
}
function handleExcelExport(gridConfig) {
$("." + gridConfig.objectID + "Export").downloadify({
filename: function () {
var elementClicked = this.el;
var headerText = $(elementClicked).parents('.portlet').find('.portlet-title h8').text();
var fileName;
if (elementClicked == undefined || headerText == undefined) {
fileName = "excel"
} else {
fileName = headerText.toString().trim()
}
return fileName + ".xls";
},
data: function () {
var elementClicked = this.el;
getHtmlForExport(elementClicked, gridConfig);
return (tableToExcel('exportTable', 1, 1));// table id, horizontal freeze,vertical freeze
},
onComplete: function () {
},
onCancel: function () {
},
onError: function () {
},
swf: 'resources/js/downloadify/downloadify.swf',
downloadImage: 'resources/css/images/excelDownload.png',
width: 65,
height: 20,
transparent: true,
append: false
});
}
and for getHtmlForExport you have to write the logic to get the html of table you want to export .