使用dll ==== NPOI.dll

获取属性,设置属性=参考:http://blog.csdn.net/cestarme/article/details/6548126

额外的:

导出的时候碰到一个问题,链接没有响应

function export(){
window.location.href="/cms/user/export";
}

看了一下控制台,报的错是未定义名字,就是说export jQuery有自定义的方法名或默认的名字,所以把export名字改了就可以了

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO; public ActionResult Export()
{
HSSFWorkbook book = new HSSFWorkbook();
ISheet sheet = book.CreateSheet("会员信息表");
ICellStyle style = book.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
NPOI.SS.UserModel.IRow row0 = sheet.CreateRow(0);
NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(1);
string[] colEName = {
"UserName","Password","Salt","RealName","UserLevel",
"Birthday","Mobile","TelPhone","HomeAddress","Active"
};
string[] colZName = {
"登录民(电子邮件)","密码","撒盐","真实姓名","用户等级",
"出生日期","手机号码","固定电话","地址","是否活动"
}; for (int i = 0; i < colEName.Length; i++)
{
row0.CreateCell(i).SetCellValue(colEName[i]);
row1.CreateCell(i).SetCellValue(colZName[i]);
}
row0.Cells.ForEach(u =>
{
u.CellStyle = style;
}); row1.Cells.ForEach(u =>
{
u.CellStyle = style;
}); var userLevelList = this.ShopService.GetUserLevelList();
var models = this.ShopService.GetUserList(new Qxun.Shop.Contract.UserRequest() { IsLock = 2, IsDel = 0, Status = 4 }).ToList();
if (models.Count > 0)
{
for (int i = 0; i < models.Count; i++)
{
NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(i + 2);
Type type = models[i].GetType();
for (int j = 0; j < colEName.Length; j++)
{
object obj = null;
string value = "";
if (colEName[j] == "UserLevel")
{
var userLevel = userLevelList.Where(u => u.ID == models[i].UserLevelID).FirstOrDefault();
if (userLevel != null)
{
value = userLevel.Title;
}
}
else if (colEName[j] == "Active")
{
obj = type.GetProperty("IsLock").GetValue(models[i], null);
if (Convert.ToInt32(obj)==0)
{
value = "活动";
}
else
{
value = "锁";
}
}
else
{
obj = type.GetProperty(colEName[j]).GetValue(models[i], null);
value = Convert.ToString(obj);
}
row2.CreateCell(j).SetCellValue(value);
}
row2.Cells.ForEach(u =>
{
u.CellStyle = style;
});
}
}
// 写入内存流即可
MemoryStream ms = new MemoryStream();
book.Write(ms);
byte[] result = ms.ToArray();
return File(result, "application/ms-excel", "会员信息表.xls");
}

设置属性

 Type Ts = obj.GetType();
object v = Convert.ChangeType(Value, Ts.GetProperty(FieldName).PropertyType);
Ts.GetProperty(FieldName).SetValue(obj, v, null);

获取对象属性值=NPOI EXPORT的更多相关文章

  1. el表达式获取对象属性值 返回值类型

    实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...

  2. c#利用反射获取对象属性值

    public static string GetObjectPropertyValue<T>(T t, string propertyname){     Type type = type ...

  3. 【java】java获取对象属性类型、属性名称、属性值

    java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...

  4. C#通过属性名字符串获取、设置对象属性值

    之前理工项目从这个博客找到了相对应的方法:C#通过属性名字符串获取.设置对象属性值 https://www.cnblogs.com/willingtolove/p/12198871.html

  5. java通过反射获取Java对象属性值

    说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...

  6. JS中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值

    在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性 ...

  7. ASP.NET Core EF 查询获取导航属性值,使用Include封装

    // 引用 using Microsoft.EntityFrameworkCore; // 摘要: // Specifies related entities to include in the qu ...

  8. EL表达式获取对象属性的原理

    EL表达式获取对象属性的原理是这样的: 以表达式${user.name}为例 EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找 ...

  9. JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别

    JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...

随机推荐

  1. 关于js的小知识

    基本数据类型:Undefined, Null, Boolean, Number, String . 引用数据类型:Object . 个人觉得对Java等语言的程序员来说,最不能接受的就是下面这样的代码 ...

  2. JAVA编程环境JDK与JRE运行环境与API核心ClassMap

    JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境.JDK是整个Java的核心1.Java运行环境( ...

  3. Linq to Entity 动态拼接查询条件(重点是OR)

    public static class PredicateExtensions { /// <summary> /// 机关函数应用True时:单个AND有效,多个AND有效:单个OR无效 ...

  4. eclipse中svn提交报错的解决

  5. SOAP消息头的处理

    SOAP消息头的处理 WebService学习总结(四)——调用第三方提供的webService服务 SOAP中 RPC/ENC 为啥被抛弃

  6. middle

    /** * Created by lkl on 2017/7/31. *//** * Created by lkl on 2017/6/26. *///spark-shell --driver-cla ...

  7. 使用 ML Pipeline 构建机器学习工作流

    http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice5/

  8. 软件设计模式之工厂模式(JAVA)

    什么是工厂模式? 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见.因为工厂模式就相 ...

  9. 页面 JavaScript 存在多个同名方法的调用分析

    在 JavaScript 中,不存在方法重载的概念,方法重载指的是可以定义不同类型的参数和参数个数的同名方法,然后可以按需调用. 如需实现按参数个数的不同去执行不同的方法主体,正确的做法是通过定义一个 ...

  10. greenplum日常维护手册

    1.       数据库启动:gpstart 常用可选参数: -a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 2.       数据库停止:gpsto ...