Asp.Net MVC 使用FileResult导出Excel数据文件

用的是Html拼接成Table表格的方式,返回 FileResult 输出一个二进制的文件.

第一种:使用FileContentResult

        //
        // 摘要:
        //     通过使用文件内容,内容类型,文件名称创建一个FileContentResult对象//
        // 参数:
        //   fileContents:
        //     响应的二进制文件内容
        //
        //   contentType:
        //     内容类型(MIME类型)
        //
        //   fileDownloadName:
        //     显示在浏览器下载窗口的文件名称//
        // 返回结果:
        //     文件内容对象.
        protected internal virtual FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName);

需要将文件内容转化成字节数组byte[]

        byte[] fileContents = Encoding.Default.GetBytes(sbHtml.ToString());

第二种:使用FileStreamResult

        // 其他参数描述同FileContentResult
        // 参数:
        //   fileStream:
        //     响应的流
        //
        // 返回结果:
        //     文件流对象.
        protected internal virtual FileStreamResult File(Stream fileStream, string contentType, string fileDownloadName);

需要将文件内容转化成流

        var fileStream = new MemoryStream(fileContents);

第三种:使用FilePathResult

        // 其他参数描述同FileContentResult
        // 参数:
        //   fileName:
        //     响应的文件路径
        //
        // 返回结果:
        //     文件流对象.
     protected internal virtual FilePathResult File(string fileName, string contentType, string fileDownloadName);

服务器上首先必须要有这个Excel文件,然会通过Server.MapPath获取路径返回.

具体详情请看代码.

ExportExcel Code

 1         public FileResult ExportExcel()
 2         {
 3             var sbHtml = new StringBuilder();
 4             sbHtml.Append("<table border=‘1‘ cellspacing=‘0‘ cellpadding=‘0‘>");
 5             sbHtml.Append("<tr>");
 6             var lstTitle = new List<string> { "编号", "姓名", "年龄", "创建时间" };
 7             foreach (var item in lstTitle)
 8             {
 9                 sbHtml.AppendFormat("<td style=‘font-size: 14px;text-align:center; font-weight:bold;‘ height=‘25‘>{0}</td>", item);
10             }
11             sbHtml.Append("</tr>");
12
13             for (int i = 0; i < 1000; i++)
14             {
15                 sbHtml.Append("<tr>");
16                 sbHtml.AppendFormat("<td style=‘font-size: 12px;height:20px;‘>{0}</td>", i);
17                 sbHtml.AppendFormat("<td style=‘font-size: 12px;height:20px;‘>屌丝{0}号</td>", i);
18                 sbHtml.AppendFormat("<td style=‘font-size: 12px;height:20px;‘>{0}</td>", new Random().Next(20, 30) + i);
19                 sbHtml.AppendFormat("<td style=‘font-size: 12px;height:20px;‘>{0}</td>", DateTime.Now);
20                 sbHtml.Append("</tr>");
21             }
22             sbHtml.Append("</table>");
23
24             //第一种:使用FileContentResult
25             byte[] fileContents = Encoding.Default.GetBytes(sbHtml.ToString());
26             return File(fileContents, "application/ms-excel", "fileContents.xls");
27
28             //第二种:使用FileStreamResult
29             var fileStream = new MemoryStream(fileContents);
30             return File(fileStream, "application/ms-excel", "fileStream.xls");
31
32             //第三种:使用FilePathResult
33             //服务器上首先必须要有这个Excel文件,然会通过Server.MapPath获取路径返回.
34             var fileName = Server.MapPath("~/Files/fileName.xls");
35             return File(fileName, "application/ms-excel", "fileName.xls");
36         }

时间: 2024-10-07 06:53:34

Asp.Net MVC 使用FileResult导出Excel数据文件的相关文章

MVC 使用FileResult导出Excel数据文件

FileResult 是一个抽象类,继承自 ActionResult.我们可以使用它的子类向客户端发送文件. 最近项目中需要对某个表格导出位Excel为表格,正好使用了到它,将列表数据构造为html的Table即可. chrom下没问题,其他浏览器兼容性还未测试,先记录下来.在controler中定义如下: public FileResult HtmlTOExcel(List<Survery> surveryList) { var sbHtml = new StringBuilder(); H

使用FileResult导出Excel数据文件

用的是Html拼接成Table表格的方式,返回 FileResult 输出一个二进制的文件. 第一种:使用FileContentResult // 通过使用文件内容,内容类型,文件名称创建一个FileContentResult对象 // 参数:fileContents:响应的二进制文件内容 // contentType:内容类型(MIME类型) // fileDownloadName:显示在浏览器下载窗口的文件名称// // 返回结果:文件内容对象. protected internal vir

asp.net Mvc 使用NPOI导出Excel文件

1.新建MVC项目,新建控制器.视图 添加控制器: 添加视图(将使用布局页前面的复选框里的勾勾去掉) 2.在Models里新建一个类 public class Shop { /// <summary> /// 编号 /// </summary> public int Number { get; set; } /// <summary> /// 商品名称 /// </summary> public string ShopName { get; set; } /

ASP.NET MVC使用NPOI读取excel数据

一.下载引用 目前官网不能直接下载到引用的dll,需要自己打包(我没有自己打包,我有现成的DLL,地址:https://files.cnblogs.com/files/dengxixi/NPOIdll.7z),即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2007版需要此dll). 二.创建MVC项目,页面代码: <html> <head> <meta name

jsp(servlet)使用poi导出excel数据文件

网站通过Excel导出数据已经成为各种网站的一个基本功能,下面就详细介绍下如何使用poi.jar方式来导出excel文件.具体步骤如下: 1.创建一个网站,下面我创建一个叫test的网站,然后将poi的jar包放入lib文件夹.我这里是下载链接poi-2.5.1.jar. 结构目录如下: 2.然后我们可以创建一个用来访问的jsp界面(主要是提交到servlet,可有可无) 代码如下: <%@ page language="java" import="java.util.

Asp.net MVC 利用 Nopi 导出 Excel

/// <summary> /// 导出认账流水 /// </summary> /// <returns></returns> public ActionResult ExportAdmitBankTrans(BankTransQueryModel queryModel) { HSSFWorkbook workBook = new HSSFWorkbook(); ISheet sheet = workBook.CreateSheet("商务报表&q

使用FileResult导出txtl数据文件

public FileResult ExportMobileNoTxt(SearchClientModel model){ var sbTxt = new StringBuilder(); for (int i = 0; i < datalist.Count; i++) { sbTxt.Append(datalist[i].Mobile +"\r\n"); } byte[] fileContents = Encoding.Default.GetBytes(sbTxt.ToStri

ASP.NET Core 导入导出Excel xlsx 文件

ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Linux和Mac. EPPlus.Core 是基于EPPlus 更改而来,在Linux 下需要安装libgdiplus . EPPlus:http://epplus.codeplex.com/ EPPlus.Core:https://github.com/VahidN/EPPlus.Core 下面在A

[转] Asp.Net 导出 Excel 数据的9种方案

湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website table 等多钟格式的文档.它具备自动识别行号,字符,格式化数字等功能,例如:如果你在Excel 单元格中输入数字 "123456789012" 会自动转化为"1.23457E+11". 背景介绍 正因为Excel的强大和易用,大家都喜欢将数据导出为 Excel 备