mvc导出EXCEL
/// <summary>
/// 导出EXCEL
/// </summary>
/// <returns></returns>
public ActionResult ExportExcel(FormCollection form)
{ //var sbHtml = new StringBuilder();
//sbHtml.Append("<table border='1' cellspacing='0' cellpadding='0'>");
//sbHtml.Append("<tr>");
//var lstTitle = new List<string> { "编号", "姓名", "年龄", "创建时间" };
//foreach (var item in lstTitle)
//{
// sbHtml.AppendFormat("<td style='font-size: 14px;text-align:center;background-color: #DCE0E2; font-weight:bold;' height='25'>{0}</td>", item);
//}
//sbHtml.Append("</tr>"); //for (int i = 0; i < 1000; i++)
//{
// sbHtml.Append("<tr>");
// sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", i);
// sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>屌丝{0}号</td>", i);
// sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", new Random().Next(20, 30) + i);
// sbHtml.AppendFormat("<td style='font-size: 12px;height:20px;'>{0}</td>", DateTime.Now);
// sbHtml.Append("</tr>");
//}
//sbHtml.Append("</table>");
//byte[] fileContents = Encoding.UTF8.GetBytes(sbHtml.ToString());
//var fileStream = new MemoryStream(fileContents);
//return File(fileStream, "application/ms-excel", "fileStream.xls"); //获取查询后条件的数据
var query = from s in iWorkOrderService.Search(c => true)
where
(string.IsNullOrEmpty(form["hid"]) ? true : s.Id == form["hid"]) &&
(string.IsNullOrEmpty(form["hState"]) ? true : s.State.Contains(form["hState"])) &&
(string.IsNullOrEmpty(form["hType"]) ? true : s.Type.Contains(form["hType"])) &&
(string.IsNullOrEmpty(form["hPhone"]) ? true : s.Phone.Contains(form["hPhone"])) &&
(string.IsNullOrEmpty(form["hService"]) ? true : s.Service.Contains(form["hService"])) &&
(string.IsNullOrEmpty(form["hProcessingMode"]) ? true : s.ProcessingMode.Contains(form["hProcessingMode"])) &&
(string.IsNullOrEmpty(form["hProductId"]) ? true : s.ProductId == int.Parse(form["hProductId"])) &&
(string.IsNullOrEmpty(form["hCstart"]) && string.IsNullOrEmpty(form["hCend"]) ? true : DateTime.Parse(s.CreateTime) >= DateTime.Parse(form["hCstart"]) && DateTime.Parse(s.CreateTime) <= DateTime.Parse(form["hCend"])) &&
(string.IsNullOrEmpty(form["hAstart"]) && string.IsNullOrEmpty(form["hAend"]) ? true : DateTime.Parse(s.ProcessingTime) >= DateTime.Parse(form["hAstart"]) && DateTime.Parse(s.ProcessingTime) <= DateTime.Parse(form["hAend"])) select new
{
s.Id,
s.Type,
s.SIM,
s.Product.Name,
s.Terminal,
s.Service,
s.Quantity,
s.Company,
s.Contact,
s.Sex,
s.Phone,
s.ProblemDescription,
s.Attachment,
s.ProcessingMode,
s.SI,
s.Suggestion,
s.State
}; #region MyRegion
System.Web.UI.WebControls.DataGrid dgExport = null; // 当前对话 System.Web.HttpContext curContext = System.Web.HttpContext.Current; // IO用于导出并返回excel文件 System.IO.StringWriter strWriter = null; System.Web.UI.HtmlTextWriter htmlWriter = null; string filename = DateTime.Now.Year + "_" + DateTime.Now.Month + "_" + DateTime.Now.Day + "_" + DateTime.Now.Hour + "_" + DateTime.Now.Minute; byte[] str = null; // 设置编码和附件格式 curContext.Response.Charset = "GB2312"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls"); curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文 curContext.Response.ContentType = "application/vnd.ms-excel"; //System.Text.Encoding.UTF8; // 导出excel文件 strWriter = new System.IO.StringWriter(); htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid dgExport = new System.Web.UI.WebControls.DataGrid(); dgExport.DataSource = query;// db.WorkOrders.ToList(); dgExport.AllowPaging = false; dgExport.DataBind(); dgExport.RenderControl(htmlWriter); // 返回客户端 str = System.Text.Encoding.UTF8.GetBytes(strWriter.ToString()); return File(str, "attachment;filename=" + filename + ".xls");
#endregion }
mvc导出EXCEL的更多相关文章
- mvc导出excel 之 新
前段时间做的mvc导出excel 老大说要进行优化,我原来导出是用npoi插件进行导出,格式是将数据放入到datatable中,然后进行导出. 说要优化的时候就想着将datatable数据导出格式改为 ...
- ASP.NET MVC导出excel
ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...
- Mvc 导出 Excel
Mvc 导出 Excel 之前接触过Webform,winfrom 的导出Excel方法 ,优点:省事.缺点:服务器必须安装Office 这几天做项目 和 大牛学习了一下 新的方法,自己加以总结.希望 ...
- MVC 导出Excel 的其中一方法(View导出excel)
场景:mvc下导出excel 思路:使用View导出excel 步骤: 1.导出标签添加事件 $("#export_A").click(function(){ //省略代码.... ...
- ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)
要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...
- MVC导出Excel,提供下载Excel
类1: using System.Collections.Generic;using System.Data;using System.Web.Mvc;using System.IO;using Sy ...
- MVC学习笔记---MVC导出excel(数据量大,非常耗时的,异步导出)
要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...
- spring mvc 导出 excel
// js 触发导出 excel 方法 导出当前页的数据 含有条件查询的结果 // js 框架使用的 是 easyui function doExport(){ var optins = $(&quo ...
- 三层+MVC导出Excel(2)
背景: 出门在外,一切以健康为主,学习为辅,健康搞好了,学习也不能拉下,在外工作期间,我们在做数据导出的时候,自己封了一个类,利用NPOI进行数据导出Excel,自我感觉良好,特给大家分享一下,希望对 ...
随机推荐
- HDU 1166 敌兵布阵(线段树单点更新)
敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...
- owncloud7.0.2.1升级8.0.3
进入更新中心升级,会自动备份下载安装,安装完提示更新数据库,跳转页面后提示需要php5.4以上版本,检查当前环境为php5.3.3.服务器为CentOS6.4,使用yum更新最新版本即5.3.3. ...
- 【转】Linux查看内存大小和插槽
原文https://wsgzao.github.io/post/linux-memory/ Linux 查看内存的插槽数,已经使用多少插槽,每条内存多大,已使用内存多大 dmidecode | gre ...
- PHP语法基础
1.PHP语法基础 PHP标记符 <?php ?> 常亮与变量 $a = 10; 变量 可以在运行过程中修改 $a = 10; $a = 20; $b = 5; echo $a+$b; c ...
- 简单设置eworkflow条件的方式
在eworkflow自定义工作流产品中,设置条件节点,是在节点的后续连线上设置的.每一个处理节点(除结束节点外)都至少有一条连线连接到下一个节点,当有多条连线连接到其他节点的时候,就需要在多出的连线上 ...
- openlayers
很久没有写东西了,最近突然想看看地图,就翻看了下,用了2-3周时间看看网页,学习做了下:先看做的效果:
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
起因: 在oracle测试过程中,不小心执行了delete user$ 命令,导致oracle当前实例所有的用户信息丢失,包括sys用户. 第一次使用DUL工具数据恢复:失败 下载ParnassusD ...
- 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...
- OGC学习课程
1.引言 由于项目需要,需要学习OGC相关地图标准,包括WMS.WFS.GML.SLD等,只是国内相关书籍大家都懂的,特向Google大师请教,得一秘籍<Open Web Mapping> ...
- WPF 容器的Z顺序操作
当需要动态添加.修改.删除控件时,如果要达到最好的效果,肯定不只是把需要的控件添加到容器中,并且还需要把容器中的已有控件进行排序操作(置顶.置底.前移.后移操作).由于初次接触到wpf,所以对很多知识 ...