一、Excel导出帮助类,要安装包NPOI

 1 using NPOI.HSSF.UserModel;
2 using NPOI.SS.UserModel;
3 using System;
4 using System.Collections.Generic;
5 using System.Data;
6 using System.IO;
7
8 namespace JMB.Common.LogicTools
9 {
10 /// <summary>
11 /// Excel导入导出组件
12 /// </summary>
13 public static class ExportHelper
14 {
15 /// <summary>
16 /// 导出数据到Excel
17 /// </summary>
18 /// <param name="SourceTable"></param>
19 /// <returns></returns>
20 public static Stream RenderDataTableToExcel(DataTable SourceTable)
21 {
22 HSSFWorkbook workbook = new HSSFWorkbook();
23 MemoryStream ms = new MemoryStream();
24 HSSFSheet sheet = workbook.CreateSheet() as HSSFSheet;
25 HSSFRow headerRow = sheet.CreateRow(0) as HSSFRow;
26
27 // handling header.
28 foreach (DataColumn column in SourceTable.Columns)
29 headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
30
31 // handling value.
32 int rowIndex = 1;
33
34 foreach (DataRow row in SourceTable.Rows)
35 {
36 HSSFRow dataRow = sheet.CreateRow(rowIndex) as HSSFRow;
37
38 foreach (DataColumn column in SourceTable.Columns)
39 {
40 dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
41 }
42
43 rowIndex++;
44 }
45
46 workbook.Write(ms);
47 ms.Flush();
48 ms.Position = 0;
49
50 sheet = null;
51 headerRow = null;
52 workbook = null;
53
54 return ms;
55 }
56 }
57 }

二、写一个把List集合转成DataTable的帮助类

 1 public class User
2 {
3 /// <summary>
4 /// 用户名
5 /// </summary>
6 public string UserName { get; set; }
7 /// <summary>
8 /// 邮箱
9 /// </summary>
10 public string Email { get; set; }
11 /// <summary>
12 /// 密码
13 /// </summary>
14 public string PassWord { get; set; }
15 }
16 public static class ListToDataTable
17 {
18 public static DataTable GetDataTable(List<User> list)
19 {
20 DataTable dt = new DataTable();
21 dt.Columns.Add("列1名称", typeof(string));//用户名
22 dt.Columns.Add("列2名称", typeof(string));//密码
23 dt.Columns.Add("列3名称", typeof(string));//邮箱
24 //加载明细
25 dt.Clear();
26 #region 加载数据
27 foreach (var item in list)
28 {
29 DataRow dr = dt.NewRow();
30 dr[0] = item.UserName;
31 dr[1] = item.PassWord;
32 dr[2] = item.Email;
33 dt.Rows.Add(dr);
34 }
35
36 #endregion
37 return dt;
38 }
39
40 }

三、在页面上点击导出Excel的按钮 控制器类中的某个Action

 1   [HttpGet]
2 public ActionResult List()
3 {
4 return View();
5 }
6
7 [HttpPost]
8 public ActionResult List(FormCollection Form)
9 {
10 string datatoexcel = Form["getexcel"].ToString();
11 if (datatoexcel == "a1")
12 {
13 List<User> list = new List<User>();
14 list.Add(new User { UserName = "张三", Email = "1s45@qq.com", PassWord = "123" });
15 list.Add(new User { UserName = "李四", Email = "14s5@qq.com", PassWord = "587" });
16 list.Add(new User { UserName = "王五", Email = "1s45@qq.com", PassWord = "12s" });
17 list.Add(new User { UserName = "麻子", Email = "145@qq.com", PassWord = "ss" });
18 DataTable dt = ListToDataTable.GetDataTable(list);
19
20 using (MemoryStream ms = ExportHelper.RenderDataTableToExcel(dt) as MemoryStream)
21 {
22 /*输出文件流,浏览器自动提示下载*/
23 string filename = "你要取的文件名" + ".xls";
24 Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + filename));
25 Response.BinaryWrite(ms.ToArray());
26 }
27 }
28 return View();
29 }

四、前端页面示意

 1 <html>
2 <script src="~/Content/js/jquery-1.11.1.js"></script>
3 <script type="text/javascript">
4 //导出数据到excel
5 function doGetExcel() {
6
7 var getexcelinput = document.createElement("input");
8 getexcelinput.type = "hidden";
9 getexcelinput.name = "getexcel";
10 getexcelinput.value = "1";
11 var form = document.getElementById('pageform');
12 form.appendChild(getexcelinput);
13 form.submit();
14 form.removeChild(getexcelinput);
15 }
16 </script>
17
18 <body>
19 <div class="session">
20 <div class="wrap-shadow">
21 <div class="session-content-padding">
22 <form id="pageform" method="post" action="/Action/List">
23 <div class="info-bar">
24 <div class="info-bar-btn-group">
25 <a class="info-bar-btn" onclick="doGetExcel();">导出Excel文件</a>
26 </div>
27 <div class="info-bar-content">
28 </div>
29 </div>
30
31
32 </form>
33 </div>
34 </div>
35 </div>
36
37 </body>
38 </html>
39

Asp.Net MVC中点击按钮导出Excel的更多相关文章

  1. ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)

    转自http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于web ...

  2. ASP.Net MVC中数据库数据导出Excel,供HTTP下载

    本文来自:http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 一.关于下载 一般对下载权限有没有限制,或安全性要求不高的情况下,基于 ...

  3. 转:ASP.NET MVC 将IList<T>导出Excel文档的泛型类

    /// <summary> /// 提供将泛型集合数据导出Excel文档. /// </summary> /// <typeparam name="T" ...

  4. ASP.Net MVC利用NPOI导入导出Excel

    因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 http://pan.baidu.com/s/1i3Fosux (Action一定要用FileResult) /// <s ...

  5. asp.net mvc 中使用NPOI导出excel

    版本信息:NPOI1.2.5(2.0以上的版本很多方法不清楚) 明确三点: path: mvc 部署网站的时候,我们肯定要拷贝的一个文件夹就mvc的UI层,有点可以肯定的是,你部署网站的路径不一定都是 ...

  6. asp.net mvc 使用NPOI插件导出excel

    /// <summary> /// 交易账单 导出交易列表 /// </summary> /// <returns></returns> public ...

  7. ASP.net MVC把Html Table导出Excel

    [HttpPost] public ActionResult ExportExcel(FormCollection form) { string strHtml = form["hHtml& ...

  8. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  9. .net mvc利用NPOI导入导出excel

    1.导出Excel :首先引用NPOI包(Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> ...

  10. 【asp.net】将GridView数据导出Excel

    概要: 中午睡了一会,醒来的时候看到老师叫我去办公室,需求是这样的,把excel表中的每个同学,判断图片目录中是否有对应的照片(图片的名字用的学号或身份证号码) 没有对应图片的学生记录,存入自己的数据 ...

随机推荐

  1. Python pdf 转 图片

    安装依赖 D:\OpenSource\Python>pip install pdf2image pillow -i https://pypi.tuna.tsinghua.edu.cn/simpl ...

  2. ElasticSearch 实现分词全文检索 - filter查询

    目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...

  3. RandomAccessFile 读写文件

    将目录下的N个日志文件读写到一个文件中. @Test void verification() throws Exception { File f = new File("D:\\Logs&q ...

  4. 3-3 vector 和 迭代器

    1 vector 容器vector可以理解为变长数组,它里面放的是相同类型的元素. vector<int> vec={1,2,3,4};//拷贝构造 vector<string> ...

  5. JSP | IDEA中部署tomcat,运行JSP文件,编译后的JSP文件存放地点总结

    首先保证你正常部署了Tomcat,并且正常在浏览器中运行了JSP文件. 参考博客:Here 那么Tomcat编译后的JSP文件(_jsp.class 和 _jsp.java)的存放地点: (一)一般存 ...

  6. C#利用控件实现柱形图分析

    数据 { using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=db_TomeOne&quo ...

  7. Win10 高效语音输入方案:听写功能 win + H

    win + H 打开听写功能,即可打开语音输入,帮你快速糊完文档 (队友亲测好用)

  8. 为R Markdown配置TinyTex编译环境

    技术背景 在前面一篇博客中,我们介绍了一些关于在Windows系统上安装R Studio来编写R Markdown,最后编译成Beamer的演示文档的过程.而在Windows系统的使用过程中发现,编译 ...

  9. VS中多个源文件中只运行其中特定文件

    1.问题 有时候一个项目中创建了多个源文件,但是我只想运行其中的一个,一起运行就会出现多个main入口的问题 2.解决方式 2.1 右键要排除的文件,点击属性 2.2 从生成中排除一项中选择是即可 2 ...

  10. Linux性能分析——TOP命令详解

    Linux性能分析--TOP命令详解 1.Top命令介绍 Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况. 这个命令对所有正在运行的进程和系 ...