MVC 3 Excel文件下载
一、准备工作
下载MyXls 下载地址为:http://sourceforge.net/projects/myxls/
二、将下载的DLL添加到项目引用中。
三、开始写代码……
1.在Controllers里面相应的Controllers添加一个Action。
/// <summary>/// 下载Action/// </summary>/// <returns></returns>/// 创建人:JackYang/// 2011/11/3public ActionResult Down(){XlsDocument xls = new XlsDocument();Worksheet sheet = xls.Workbook.Worksheets.Add("下载内容");ColumnInfo colInfo = new ColumnInfo(xls, sheet);//将拼写好的Excel,转化成byte[]return File(DownLoadHelper(xls,sheet,"下载内容"), "application/vnd.ms-excel");}
2.添加一个Excel进行二进制的转换的私有方法
/// <summary>/// 将拼写好的Excel,转化成byte[]/// </summary>/// <param name="xls">XLS.</param>/// <param name="sheet">sheet.</param>/// <param name="xlsName">下载时文件名称</param>/// <returns></returns>/// 创建人:JackYang/// 2011/11/3private byte[] DownLoadHelper(XlsDocument xls, Worksheet sheet, string xlsName){using (MemoryStream ms = new MemoryStream()){xls.Save(ms);ms.Flush();ms.Position = 0;sheet = null;xls = null;HttpResponse response = System.Web.HttpContext.Current.Response;response.Clear();response.Charset = "UTF-8";response.ContentType = "application/vnd.ms-excel";System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + HttpUtility.UrlEncode(xlsName)));byte[] data = ms.ToArray();return data;}}
3.在前台页面,添加一个超链接,来调用这个Action。
@Html.ActionLink("下载", "Down");
四、OK了,点下,就可以下载到传说中正统的Excel文件了。

浙公网安备 33010602011771号