备注:
1,按钮的id :btnExport 自行绑定点击事件
2,表格的id :StuTab
3,在表格中加入复选框checkbox:true,可导出选中的数据。
4,加上idField:“id”, 可解决分页选中导出。
以下是具体代码:
function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
//如果jsondata不是对象,那么json.parse将分析对象中的json字符串。
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData)
: JSONData;
var sele=$("#StuTab").datagrid('getSelections');
if(sele!=""){
var CSV = '';
//在第一行拼接标题
CSV += ReportTitle + '\r\n\n';
//产生数据标头
if (ShowLabel) {
var row = "";
//此循环将从数组的第一个索引中提取标签
for ( var index in arrData[0]) {
//现在将每个值转换为字符串和逗号分隔
row += index + ',';
}
row = row.slice(0, -1);
//添加带换行符的标签行
CSV += row + '\r\n';
}
//第一个循环是提取每一行
for (var i = 0; i < sele.length; i++) {
var row = "";
for ( var index in sele[i]) {
row += '"' + sele[i][index] + '",';
}
row.slice(0, row.length - 1);
CSV += row + '\r\n';
}
if (CSV == '') {
alert("Invalid data");
return;
}
var fileName = "我的学生_";
fileName += ReportTitle.replace(/ /g, "_");
var uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURI(CSV);
var link = document.createElement("a");
link.href = uri;
link.style = "visibility:hidden";
link.download = fileName + ".csv";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}else{
$.messager.alert("提示","请选择需要导出的学生")
}
}
$("#btnExport").click(function() {
var data = JSON.stringify($('#StuTab').datagrid('getData').rows);
if (data == '')
return;
JSONToCSVConvertor(data, "数据信息", true);
});