学习日记7、mvc +easyui datagrid excel上传
1、首先获取datagrid所有行的数据
var rows = $("#List").datagrid("getRows");
2、进行数据转换转化成JSON格式
var bodyData = JSON.stringify(rows);
//替换中文标题
var a = bodyData.replace(/Cst_CustomerCoding/, "客户编码").replace(/CustomerName/, "客户名称")
.replace(/IDNumber/, "客户身份证号").replace(/Sex/, "性别").replace(/Birthday/, "生日").replace(/Phone/, "电话")
.replace(/EmergencyContact/, "紧急联系人").replace(/EmergencyCall/, "紧急联系人电话").replace(/Address/, "地址")
.replace(/PersonnelId/, "经办人").replace(/EnteroneId/, "录入人");
var postData = { data: a };
我这个地方是把标题改成对应的汉字标题,然后利用Ajax向后台传输数据
$.ajax({
cache: false,
url: '@Url.Action("ExportExcel")',
type:'post',
data: postData,
success: function (data) {
$.messageBoxWxc("提示", data.message);
},
error: function () {
alert("网络出错!")
}
})
然后利用一些帮助库就轻松地完成easyui datagrid导出Excel
///
/// 导出Excel
///
/// json数据
///
[HttpPost]
public JsonResult ExportExcel()
{
string json = Request.Params["data"];
try
{
DataTable dt = ExcelHelper.JsonToDataTable(json);
//桌面路径
string pathDestop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
ExcelHelper.GridToExcelByNPOI(dt, pathDestop + "\\" + "客户信息-" + DateTime.Now.ToString("yyyy-MM-dd") + "导出" + ".xls");
LogHandler.WriteServiceLog(UserState.GetUserState().Id, "导出Excel", Suggestion.Success, Suggestion.Export, "Export");
return Json(JsonHandler.CreateMessage(1, Suggestion.ExportSuccess),JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
ExceptionHander.WriteException(ex);
LogHandler.WriteServiceLog(UserState.GetUserState().Id, "导出Excel", Suggestion.Fail, Suggestion.Export, "Export");
return Json(JsonHandler.CreateMessage(0, Suggestion.ExportFail),JsonRequestBehavior.AllowGet);
}
}
GridToExcelByNPOI这个类需要通过GuGet安装NOPI
通过这些类库其实自己写的代码也没有多少,接下来我回去学习自己定制的Excel输出,等我学会,会接着分享的,
这些类库网上应该都有,如果搜不找的,可以留言