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

第一种:使用FileContentResult

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

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

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

第二种:使用FileStreamResult

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

需要将文件内容转化成流

  1. var fileStream = new MemoryStream(fileContents);

第三种:使用FilePathResult

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

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

具体详情请看代码:

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

使用FileResult导出Excel数据文件的更多相关文章

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

    MVC实现Excel导出功能,今天来记录一下. 采取了最简单的方法.(转载)   用的是Html拼接成Table表格的方式,返回 FileResult 输出一个二进制的文件. 第一种:使用FileCo ...

  2. Asp.Net 导出Excel数据文件

    表格例子如下: <table id="tableExcel" width="100%" border="1" cellspacing= ...

  3. [转载]ecshop 实现订单导出功能 指定订单导出 EXCEL 数据文件

    当下很多功能都觉得理所当然,但是实际作为2012年停更的ECSHOP来说,很多功能其实都是缺少的,好比今天的要说的功能 订单导出 这个功能对于现在的产品设计来说,应该属于一个比较常规的功能,但是ECS ...

  4. 使用FileResult导出txtl数据文件

    public FileResult ExportMobileNoTxt(SearchClientModel model){ var sbTxt = new StringBuilder(); ; i & ...

  5. NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。

    App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

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

    湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website ...

  7. 使用PHPExcel导入导出excel格式文件

    使用PHPExcel导入导出excel格式文件  作者:zccst  因为导出使用较多,以下是导出实现过程.  第一步,将PHPExcel的源码拷贝到项目的lib下  文件包含:PHPExcel.ph ...

  8. oracle-sql脚本导出EXCEL数据

    在数据库中,经常有业务人员提出需求导出数据库中的业务数据,而且是每天.每周或每月定时导出.为了方便,可将sql查询的脚本 通过下面脚本来导出EXCEL数据. 1.将查询sql脚本(AAA.sql)放到 ...

  9. flask使用tablib导出excel数据表

    在网页中常常有导出数据的需求,尤其是一下管理类平台.在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦.tablib库相对操作更加方便. ...

随机推荐

  1. (未完成👃)You Don't Know JS: Scope & Closures (第5章: Scope & Closures)

    Chapter 5: Scope Closure 我们到达这里时,已经对作用域如何工作有了非常健康稳固的理解. 下面,我们转移注意力到一个及其重要,但长期难以理解,几乎是神话中的部分语言:Closur ...

  2. Raspbian安装Opencv3

    如果旧版本使用apt-get安装 sudo apt-get remove libopencv sudo apt-get remove opencv 如果旧版本使用编译安装 sudo make unin ...

  3. Spring boot(六)优雅使用mybatis

    orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开 ...

  4. tcpcopy真实流量压测工具

    https://quentinxxz.iteye.com/blog/2249799 http://blog.chinaunix.net/uid-25057421-id-5576741.html htt ...

  5. github上fork了别人的项目后,再同步更新别人的提交(转)

    原文地址:github上fork了别人的项目后,再同步更新别人的提交 我从github网站和用git命令两种方式说一下. github网站上操作 打开自己的仓库,进入code下面. 点击new pul ...

  6. Git:创建与合并分支

    1.1创建dev分支,使用命令符 git branch 分支名称. 1.2将HEAD指针切换到dev分支,使用命名符git checkout 分支名称. 注:创建并且转移可以合并为一个步骤,使用命令符 ...

  7. vue 小知识

    图片: 1.img 的路径 <img :src="item.src"/> 2.背景图片的路径 v-bind:style="{backgroundImage: ...

  8. nodejs安装 淘宝镜像

    1◆ nodejs下载 2◆ 安装 3◆ 测试   4◆ 淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org   5 ...

  9. js之querySelector方法

    querySelector()接受一个CSS选择符,返回匹配的第一个元素,反之则NULL. 如: var body = document.querySelector('body'); var mydi ...

  10. \x 和 0x 的区别

    1.0x 表示整型数值 (十六进制) char c = 0x42; 表示的是一个数值(字母B对应的ASCII码——  66),可以认为等价于: int c = 0x42; 2.\x42用于字符表达,或 ...