使用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. AngularJS $http模块POST数据,后台接受不到

    1.问题: 后端接收不到AngularJs中$http.post发送的数据,总是显示为null 示例代码: $http.post(/admin/KeyValue/GetListByPage, { pa ...

  2. linux下时间同步的两种方法分享

    方法1:与一个已知的时间服务器同步 复制代码 代码如下: ntpdate time.nist.gov 其中 time.nist.gov 是一个时间服务器. 删除本地时间并设置时区为上海 复制代码 代码 ...

  3. sublime3 docblocker插件定制自己的注释,配置步骤

    DocBlockr很好用,不仅仅可以自动生成注释,还可以手动编辑注释的格式. 安装方法:   Cmd+Shift+P -> Install Package -> docblockr  wi ...

  4. JNDI 在 J2EE 中的角色

    JNDI 在 J2EE 中的角色 Spring整合HIbernate时,三种数据库连接池的配置和比较 Tomcat 6 JNDI数据源详解 Tomcat 6 --- JNDI详解 Spring整合HI ...

  5. UART Receive FIFO and Receive Timeout

    为什么UART要有FIFO? 现代的CPU运转速度越来越快.UART的波特率通常达不到10M,在没有FIFO的情况下.每次填充数据给UART 或者 从UART取数据都会占用CPU的时间.这是极大的浪费 ...

  6. hive cst 时间转换

    select from_unixtime(unix_timestamp(r.collecttime,'EEE MMM dd HH:mm:ss zzz yyyy'),'yyyy-MM-dd HH:mm: ...

  7. JSTL时间格式化项目小试

    我在之前的博客中虽然详尽的介绍了JSTL在各个载体中的用法,也介绍了它和EL的共同使用的好处,但是只是顺便提了一下JSTL的格式化. 今天在项目中遇到了一个小问题,也就想到这,马上就开始实践了一下,效 ...

  8. How to make an HTTP request in Swift

    from: http://stackoverflow.com/questions/24016142/how-to-make-an-http-request-in-swift You can use N ...

  9. Spring Boot 处理 REST API 错误的正确姿势

    摘要:如何正确的处理API的返回信息,让返回的错误信息提供更多的含义是一个非常值得做的功能.默认一般返回的都是难以理解的堆栈信息,然而这些信息也许对于API的客户端来说有可能并没有多大用途,并没有多大 ...

  10. python 读取csv文件

    python中有一个读写csv文件的包,直接import csv即可 新建test.csv 1.写 import csv with open("test.csv","w& ...