您现在的位置是:网站首页> 编程资料编程资料
Asp.net MVC实现生成Excel并下载功能_实用技巧_
2023-05-24
658人已围观
简介 Asp.net MVC实现生成Excel并下载功能_实用技巧_
本文实例为大家分享了Asp.net MVC实现生成Excel并下载的具体代码,供大家参考,具体内容如下
由于项目上的需求,需要导出指定条件的Excel文件。经过一翻折腾终于实现了。
现在把代码贴出来分享
(直接把我们项目里面的一部份辅助类的代码分享一下)
我们项目使用的是Asp.Net MVC4.0模式。
每个ActionResult必然会返回一个View或Json等(View或Json中的参数都是object类型的)
所以我们需要一个公共类来统一定义操作的“成功或失败”的状态或返回操作的消息 ,以及有利于使用jquery $.get() 、$.post()的接收返回参数时的统一性。
以下是StatusMessageData类。(当然,如果只想要导出Excel,这个类是不需要定义的。)
////// 辅助传输StatusMessage数据 /// [Serializable] public sealed class StatusMessageData { private StatusMessageType messageType; ////// 提示消息类别 /// public StatusMessageType MessageType { get { return messageType; } set { messageType = value; } } private string messageContent = string.Empty; ////// 信息内容 /// public string MessageContent { get { return messageContent; } set { messageContent = value; } } private object data; ////// 数据 /// public object Data { get { return data; } set { data = value; } } ////// 构造器 /// /// 消息类型 /// 消息内容 public StatusMessageData(StatusMessageType messageType, string messageContent, object data) { this.messageType = messageType; this.messageContent = messageContent; this.data = data; } public StatusMessageData(StatusMessageType messageType, string messageContent) { this.messageType = messageType; this.messageContent = messageContent; } public StatusMessageData() { } } ////// 提示消息类别 /// public enum StatusMessageType { ////// 成功 /// Success = 1, ////// 错误 /// Error = -1, ////// 提示信息 /// Hint = 0, ////// 提醒登录 /// Login = 5, ////// 提示重定向 /// Redirect = 6, }
在Controller中定义ExportExcel ActionResult
[HttpPost] public ActionResult ExportExcel(SearchModel model) { StatusMessageData result = new StatusMessageData(); if (model.Data == null || model.Data.Count <= 0) { result.MessageType = StatusMessageType.Error; result.MessageContent = "没有要下载的数据"; return Json(result); } string fileglobal = ""; //组织Excel表格 StringBuilder sb = new StringBuilder(400); sb.Append("| 列一 | "); sb.Append("列二 | "); sb.Append("列三 | "); sb.Append("列四 | "); sb.Append("
|---|---|---|---|
| "); sb.Append(item.column1); sb.Append(" | "); sb.Append(""); sb.Append(item.column2); sb.Append(" | "); sb.Append(""); sb.Append(item.column3); sb.Append(" | "); sb.Append(""); sb.Append(item.column4); sb.Append(" | "); sb.Append("
完成了生成Excel的操作后,在页面进行异步调用。
$("#export-excel").click(function (e) { e.preventDefault(); $.post("Controller/ExportExcel.aspx", $("#Form1").serialize(), function (data) { art.dialog.tips(data.MessageContent, 1.5, data.MessageType, function () { if (data.MessageType == 1) { window.open(data.Data); } else { //错误操作 } }); }); }); 以上就是我们项目中关于Excel生成到下载的全部操作。
考虑的情况比较少,写的比较简单。
如果大家有什么好的想法,可以留言,我肯定会学习并实践好再拿出来分享。
非常感谢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- .Net Core内存回收模式及性能测试对比分析_实用技巧_
- WPF水珠效果按钮组的实现教程_实用技巧_
- CefSharp v62修改方法(支持.net4.0)_实用技巧_
- asp.net core webapi 服务端配置跨域的实例_实用技巧_
- ADO.NET获取数据(DataSet)同时获取表的架构实例_实用技巧_
- ASP.NET Core 2.0 WebApi全局配置及日志实例_实用技巧_
- Asp.Net Core中WebSocket绑定的方法详解_实用技巧_
- VS 2015开发跨平台手机应用的配置教程_实用技巧_
- Asp.NET控制文件上传的大小方法(超简单)_实用技巧_
- Razor TagHelper实现Markdown转HTML的方法_实用技巧_
