小編給大家分享一下Asp.net MVC如何實現(xiàn)生成Excel并下載功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為吳江等服務(wù)建站,吳江等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為吳江企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。由于項目上的需求,需要導(dǎo)出指定條件的Excel文件。經(jīng)過一翻折騰終于實現(xiàn)了。
現(xiàn)在把代碼貼出來分享
(直接把我們項目里面的一部份輔助類的代碼分享一下)
我們項目使用的是Asp.Net MVC4.0模式。
每個ActionResult必然會返回一個View或Json等(View或Json中的參數(shù)都是object類型的)
所以我們需要一個公共類來統(tǒng)一定義操作的“成功或失敗”的狀態(tài)或返回操作的消息 ,以及有利于使用jquery $.get() 、$.post()的接收返回參數(shù)時的統(tǒng)一性。
以下是StatusMessageData類。(當(dāng)然,如果只想要導(dǎo)出Excel,這個類是不需要定義的。)
////// 輔助傳輸StatusMessage數(shù)據(jù) /// [Serializable] public sealed class StatusMessageData { private StatusMessageType messageType; ////// 提示消息類別 /// public StatusMessageType MessageType { get { return messageType; } set { messageType = value; } } private string messageContent = string.Empty; ////// 信息內(nèi)容 /// public string MessageContent { get { return messageContent; } set { messageContent = value; } } private object data; ////// 數(shù)據(jù) /// public object Data { get { return data; } set { data = value; } } ////// 構(gòu)造器 /// /// 消息類型 /// 消息內(nèi)容 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 = "沒有要下載的數(shù)據(jù)"; 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的操作后,在頁面進行異步調(diào)用。
$("#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 { //錯誤操作 } }); }); });
ASP.NET 是開源,跨平臺,高性能,輕量級的 Web 應(yīng)用構(gòu)建框架,常用于通過 HTML、CSS、JavaScript 以及服務(wù)器腳本來構(gòu)建網(wǎng)頁和網(wǎng)站。
以上是“Asp.net MVC如何實現(xiàn)生成Excel并下載功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!