Web  controller

  /// <summary>
/// 导出数据
/// </summary>
/// <param name="UserID"></param>
/// <param name="UserName"></param>
/// <param name="UserStatus"></param>
/// <param name="Gender"></param>
/// <param name="Mobile"></param>
/// <param name="bAddTime"></param>
/// <param name="eAddTime"></param>
/// <param name="bLastLoginTime"></param>
/// <param name="eLastLoginTime"></param>
public void CreateExcel(string UserID, string UserName, string UserStatus, string Gender, string Mobile, string bAddTime, string eAddTime, string bLastLoginTime, string eLastLoginTime)
{ SearchItem.UserSearchItem item = new SearchItem.UserSearchItem();
if (UserName != null && !UserName.Equals(""))
item.UserName = UserName;
if (UserID != null && !UserID.Equals("") && UserID != "undefined")
item.UserID = int.Parse(UserID);
//*******
if (UserStatus != null && !UserStatus.Equals("") && !UserStatus.Equals("null"))
item.UserStatus = int.Parse(UserStatus);
if (Gender != null && !Gender.Equals("") && !Gender.Equals("null"))
item.Gender = int.Parse(Gender);
if (Mobile != null && !Mobile.Equals(""))
item.Mobile = Mobile;
//************
if (bAddTime != "null" && bAddTime != null && !bAddTime.Equals("") && bAddTime != "undefined")
item.bAddTime = Convert.ToDateTime(bAddTime);
if (eAddTime != null && !eAddTime.Equals("") && eAddTime != "undefined")
item.eAddTime = Convert.ToDateTime(eAddTime);
if (bLastLoginTime != null && !bLastLoginTime.Equals("") && bLastLoginTime != "undefined")
item.bLastLoginTime = Convert.ToDateTime(bLastLoginTime);
if (eLastLoginTime != null && !eLastLoginTime.Equals("") && eLastLoginTime != "undefined")
item.eLastLoginTime = Convert.ToDateTime(eLastLoginTime);
//if (Status != null && !Status.Equals("") && Status != "null")
// item.Status = Convert.ToInt32(Status); Dictionary<string, string> columnInfo = new Dictionary<string, string>();
columnInfo.Add("UserID", "编号");
columnInfo.Add("UserName", "用户名");
columnInfo.Add("TrueName", "真实姓名");
columnInfo.Add("Gender", "性别");
columnInfo.Add("Email", "邮箱");
columnInfo.Add("Mobile", "手机");
columnInfo.Add("Area", "地域");
columnInfo.Add("UserStatus", "状态");
columnInfo.Add("AddTime", "注册时间");
columnInfo.Add("RegisterIP", "注册IP");
columnInfo.Add("LastLoginTime", "最后登录时间");
columnInfo.Add("LastLoginIP", "最后登录IP"); var objList = new UserInfoDAL().GetListExcel(item);
var time = DateTime.Now;
var strtime = time.ToString("yyyyMMddHHmm");
string FileName = "用户列表导出" + strtime + ".xls";
//生成EXCEL的HTML
string excelStr = "";
Type myType = objList[].GetType();
//根据反射从传递进来的属性名信息得到要显示的属性
List<System.Reflection.PropertyInfo> myPro = new List<System.Reflection.PropertyInfo>();
foreach (string cName in columnInfo.Keys)
{
System.Reflection.PropertyInfo p = myType.GetProperty(cName);
if (p != null)
{
myPro.Add(p);
excelStr += columnInfo[cName] + "\t";
}
}
//如果没有找到可用的属性则结束
//if (myPro.Count == 0) { return; }
excelStr += "\n";
foreach (UserInfo obj in objList)
{
foreach (System.Reflection.PropertyInfo p in myPro)
{
var d = p.GetValue(obj, null);
if (p.Name == "Gender" && p.GetValue(obj, null) != null)
{
var status = p.GetValue(obj, null).ToString();
string sta = "";
if (status == "")
sta = "女";
else if (status == "")
sta = "男";
else
sta = "未定义";
excelStr += sta + "\t";
}
else if (p.Name == "UserStatus" && p.GetValue(obj, null) != null)
{
var status = p.GetValue(obj, null).ToString();
string sta = "";
if (status == "")
sta = "正常";
else if (status == "")
sta = "禁止";
else
sta = "未定义";
excelStr += sta + "\t";
}
else
excelStr += p.GetValue(obj, null) + "\t";
}
excelStr += "\n";
}
//输出EXCEL
HttpResponse rs = System.Web.HttpContext.Current.Response;
rs.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
rs.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
rs.ContentType = "application/ms-excel";
rs.Write(excelStr);
rs.End(); }

UserInfoDAL()

 public List<UserInfo> GetListExcel(SearchItem.UserSearchItem item)
{
/*
var order = extitem.Sort + " " + extitem.Dir; var search = item.UserStatus < 0 ? QueryBuilder.Create<UserInfo>()
.Like(c => c.UserName, item.UserName)
.Like(c => c.Mobile, item.Mobile)
.Equals(c => c.UserID, item.UserID)
.Equals(c => c.Gender, item.Gender)
.Between(c => c.AddTime, item.bAddTime.HasValue ? item.bAddTime.Value : DateTime.MinValue.AddYears(1990), item.eAddTime.HasValue ? item.eAddTime.Value.AddDays(1) : DateTime.MaxValue)
.Between(c => c.LastLoginTime, item.bLastLoginTime.HasValue ? item.bLastLoginTime.Value : DateTime.MinValue.AddYears(1990), item.eLastLoginTime.HasValue ? item.eLastLoginTime.Value.AddDays(1) : DateTime.MaxValue)
.LessThan(c => c.UserStatus, 0) :
QueryBuilder.Create<UserInfo>()
.Like(c => c.UserName, item.UserName)
.Like(c => c.Mobile, item.Mobile)
.Equals(c => c.Gender, item.Gender)
.Equals(c => c.UserStatus, item.UserStatus)
.Between(c => c.AddTime, item.bAddTime.HasValue ? item.bAddTime.Value : DateTime.MinValue.AddYears(1990), item.eAddTime.HasValue ? item.eAddTime.Value.AddDays(1) : DateTime.MaxValue)
.Between(c => c.LastLoginTime, item.bLastLoginTime.HasValue ? item.bLastLoginTime.Value : DateTime.MinValue.AddYears(1990), item.eLastLoginTime.HasValue ? item.eLastLoginTime.Value.AddDays(1) : DateTime.MaxValue)
.Equals(c => c.UserID, item.UserID);
*/ var search = item.UserStatus < ? QueryBuilder.Create<UserInfo>()
.Like(c => c.UserName, item.UserName)
.Like(c => c.Mobile, item.Mobile)
.Equals(c => c.UserID, item.UserID)
.Equals(c => c.Gender, item.Gender)
.Between(c => c.AddTime, item.bAddTime.HasValue ? item.bAddTime.Value : DateTime.MinValue.AddYears(), item.eAddTime.HasValue ? item.eAddTime.Value.AddDays() : DateTime.MaxValue)
.Between(c => c.LastLoginTime, item.bLastLoginTime.HasValue ? item.bLastLoginTime.Value : DateTime.MinValue.AddYears(), item.eLastLoginTime.HasValue ? item.eLastLoginTime.Value.AddDays() : DateTime.MaxValue)
.LessThan(c => c.UserStatus, ) :
QueryBuilder.Create<UserInfo>()
.Like(c => c.UserName, item.UserName)
.Like(c => c.Mobile, item.Mobile)
.Equals(c => c.Gender, item.Gender)
.Equals(c => c.UserStatus, item.UserStatus)
.Between(c => c.AddTime, item.bAddTime.HasValue ? item.bAddTime.Value : DateTime.MinValue.AddYears(), item.eAddTime.HasValue ? item.eAddTime.Value.AddDays() : DateTime.MaxValue)
.Between(c => c.LastLoginTime, item.bLastLoginTime.HasValue ? item.bLastLoginTime.Value : DateTime.MinValue.AddYears(), item.eLastLoginTime.HasValue ? item.eLastLoginTime.Value.AddDays() : DateTime.MaxValue)
.Equals(c => c.UserID, item.UserID);
//int OrderStatus = -4;
//if (!int.TryParse(osi.OrderStatus, out OrderStatus))
//{
// search.In(c => c.OrderStatus, OrderStatus);
//}
var list = (from o in Udc.tb_UserInfo
select new UserInfo
{
//OrderID = t.OrderID,
//OrderTime = t.OrderTime,
//UserName = Udc.tb_UserInfo.SingleOrDefault(r => r.UserID.Equals(t.UserID)).UserName,
UserID = o.UserID,
UserName = o.UserName,
Email = o.Email,
Gender = o.Gender,
Mobile = o.Mobile,
Provice = o.Provice,
City = o.City,
Prefecture = o.Prefecture,
Area = o.Provice + o.City,
UserImage = o.UserImage,
LearnIndex = o.LearnIndex,
TeachIndex = o.TeachIndex,
GoodComments = o.GoodComments,
UserStatus = o.UserStatus,
TrueName = o.TrueName,
IdentyNum = o.IdentyNum,
Introduce = o.Introduce,
ActiveInfo = o.ActiveInfo,
BuyGoodComments = o.BuyGoodComments,
Attention = o.Attention,
Extend = o.Extend,//**************
Img = o.Img,
ReferrerID = o.ReferrerID,//************
AddTime = o.AddTime,
StrGrade = o.Grade,
U_School = o.School,
PassWord = o.Password,
Birthday = o.birthday,
RegisterIP = o.RegisterIP,
LastLoginIP = o.LastLoginIP,
LastLoginTime = o.LastLoginTime }).Where(search.Expression).ToList();//.ToPagedList(esi.Start / esi.Limit + 1, esi.Limit);
return list;
}

Excel 数据导出的更多相关文章

  1. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  2. excel数据导出新妙招

    之前在做项目的时候需要将数据库中的数据导出为excel表格一遍打印查阅,在网上找了很多插件也没有找到自己理想的好用的插件(也就是说没有找到令我满意的插件),最近在学习a标签的相关知识时理解到,a标签不 ...

  3. java实现Excel数据导出

    java实现Excel数据导出: 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel Jakarta POI 是一套用于访问微软格式文档的Java ...

  4. php做EXCEL数据导出导入开发的一些小问题

    前两天刚刚做开发CRM系统项目,在做要做EXCEL导出导入功能,因为以前做.NET开发用的是NPOI,但可是没找到PHP版本的,所以就网搜找了个国外的开源PHPEXCEL , 一开始只是做了简单的导入 ...

  5. .Net之Nopi Excel数据导出和批量导入功能

    一.介绍NPOI和编写demo的原因 1.Npoi是什么: 它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能 ...

  6. python Excel数据导出

    import pymysql,os,time,xlwtpymysql.install_as_MySQLdb() try: #创建一个excel工作簿,编码utf-8,表格中支持中文 wb=xlwt.W ...

  7. epplus excel数据导出(数据量有点大的情况) Web和Client

    Asp.net MVC后台代码 public ActionResult Export() { OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.Exc ...

  8. PHPExcel 导入Excel数据 (导出下一篇我们继续讲解)

    一:使用composer下载 phpoffice/phpexcel 或者直接下载安装包 composer require phpoffice/phpexcel 二 1:导入数据 原理:读取文件,获取文 ...

  9. 通过java反射实现的excel数据导出

    Excel.java @SuppressWarnings("deprecation") public static <T> void ExportExcel(Strin ...

随机推荐

  1. CentOS 下安装 Node npm pm2

    1.node安装 参考:http://blog.csdn.net/haidaochen/article/details/7257655 下载,你需要在https://nodejs.org/en/dow ...

  2. memcached参数解释及常用命令

    一.执行 memcached -h 会显示所有的参数项,对应的中文解释如下: -p <num>      监听的TCP端口(默认: 11211) -U <num>      监 ...

  3. pyqt样式表语法笔记(下)--原创

    pyqt样式表语法笔记(下) python 启动界面 QSS pyqt 一.启动界面的设置 简单点~说话的方式简单点用一张静态图片作为程序启动界面为例. 原来的语句     python    7行 ...

  4. win32最简单的htmlayout图形界面demo

    1,下载HTMLayoutSDK,放在workspace. SDK下载地址:http://www.terrainformatica.com/htmlayout/HTMLayoutSDK.zip 2,v ...

  5. 如何在Ubuntu_16_04下使用MySql的GR

    一.前言 该文章主要是记录下从一个纯净的系统开始如何安装MySql 5.7.17 并且使用GR,以便于自己后期查看以及分享给他人. 二.安装mysql 因为默认ubuntu的源并不是最新的mysql所 ...

  6. 【SoDiaoEditor更新啦】--谨以献给那些还在医疗行业奋斗的小伙伴们

    先放github地址:https://github.com/tlzzu/SoDiaoEditor.v2 首先,这不是愚人节的玩笑,,, 本想着三月底发布来着,结果昨天又在兼容性上调出几个bug,然后拖 ...

  7. EntityFramework Core高并发深挖详解,一纸长文,你准备好了吗?

    前言 之前有关EF并发探讨过几次,但是呢,博主感觉还是有问题,为什么会觉得有问题,其实就是理解不够透彻罢了,于是在项目中都是用的存储过程或者SQL语句来实现,利用放假时间好好补补EF Core并发的问 ...

  8. js 操作属性

    操作属性: 对象.setAttribute('属性名','值'); - 添加属性 对象.getAttribute('属性名'); - 获取属性值,如无此属性,那么返回null 对象.removeAtt ...

  9. Struts2基础学习(一)—初识Struts2

      目录 一.什么是Struts2 二.搭建Struts2的开发环境 三.Struts2的配置文件 四.MVC模式 一.什么是Struts2      Struts2是一个非常优秀的MVC框架,由传统 ...

  10. layout_weight相关知识

    之前使用layout_weight都是在layout_width或layout_height为0dp的时候,都没出现什么问题,但是无意间看到了如果设为match_parent会出现不同效果记录一下. ...