页面定义:
<div style="display:none;">
<a href="javascript:void(0);" id="exportExcel">ExportExcel</a>
<table role="excel_table" id="excel_table" style="display:none;">
</table>
</div>
js代码:
exportExcel :function(){
var data = temperature.$illuminationDatagrid.datagrid("getData");
if(data.total == 0){
$.messager.alert("温馨提示","暂无数据可导出,请先查询数据!","info");
}else{
$.messager.confirm("温馨提示","确认导出?",function(r){
if(r){
var timeStatistics = temperature.$timeStatistics.combobox("getValue"),
columnFields = temperature.$illuminationDatagrid.datagrid("getColumnFields"),
hide0 = ["avgSSH"],
hide1 = ["sSH"],
columnField = [];
//移除字段
if(timeStatistics == 0){
columnField = hide0;
}else{
columnField = hide1;
}
for(var i = 0 ; i < columnField.length ; i++){
if(columnFields.indexOf(columnField[i]) > -1){
columnFields.splice(columnFields.indexOf(columnField[i]),1);
}
}
//获取title
var colName=[];
for( i = 0 ; i < columnFields.length ; i++){
var col = temperature.$illuminationDatagrid.datagrid( "getColumnOption" , columnFields[i] );
colName.push(col.title);//把TITLEPUSH到数组里去
}
//渲染虚拟的table
var talbleHtml = [],$excelTable = $('table[role="excel_table"]'),sortFields = [];
$excelTable.html("");
talbleHtml.push('<tr>');
for(var i = 0 ;i < colName.length ; i++){
talbleHtml.push('<td>' + colName[i] + '</td>');
}
talbleHtml.push('</tr>');
console.log(data);
//加载数据
for(var i = 0 ; i < data.rows.length ; i++){
talbleHtml.push('<tr>');
var rowObject = data.rows[i];//需要遍历的数据集合数组
for(var j = 0 ; j < columnFields.length ; j++){
for(var field in rowObject){
if(field == columnFields[j]){
if(field == "datetime"){
talbleHtml.push('<td class="excel_td_null">' + new Date(rowObject[field]).format("yyyy-MM-dd hh:mm:ss") + '</td>');
}else{
talbleHtml.push('<td class="excel_td_null">' + rowObject[field] + '</td>');
}
}
}
}
talbleHtml.push('</tr>');
}
$excelTable.append(talbleHtml.join(""));
//删除为null的数据
$excelTable.find(".excel_td_null").each(function(i,item){
var context = $(this).html();
if(context == "null"){
$(this).html("");
}
});
tableToExcel("excel_table","光照统计面板");
}
})
}
}