获取对象属性值=NPOI EXPORT
使用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的更多相关文章
- el表达式获取对象属性值 返回值类型
实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...
- c#利用反射获取对象属性值
public static string GetObjectPropertyValue<T>(T t, string propertyname){ Type type = type ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- C#通过属性名字符串获取、设置对象属性值
之前理工项目从这个博客找到了相对应的方法:C#通过属性名字符串获取.设置对象属性值 https://www.cnblogs.com/willingtolove/p/12198871.html
- java通过反射获取Java对象属性值
说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...
- JS中使用document.defaultView.getComputedStyle()、currentStyle()方法获取CSS属性值
在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性 ...
- ASP.NET Core EF 查询获取导航属性值,使用Include封装
// 引用 using Microsoft.EntityFrameworkCore; // 摘要: // Specifies related entities to include in the qu ...
- EL表达式获取对象属性的原理
EL表达式获取对象属性的原理是这样的: 以表达式${user.name}为例 EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找 ...
- JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别
JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...
随机推荐
- js中的方法调用
<script> var m = {com: { sao: {citi:{}}}}; m.com.sao.citi.init = new function() { this.name = ...
- 手机程序的app包名查找,可以在手机上查到
获取pkgname(安卓软件包名) 1. 先下载pkgName安装文件(pkgName.apk )并在手机上安装2. 打开刚刚安装的pkgName软件,软件会自动生成你手机上软件的包名列表,同时会在手 ...
- lnmp手动新建虚拟机
1.在home/wwwroot/zhongjie 新建zhongjie文件夹 2.在usr/local/nginx/conf/vhost/zhongjie.conf 新建配置文件zhongj ...
- selenium 如何处理table
qi_ling2005 http://jarvi.iteye.com/blog/1477837 andyguo http://blog.csdn.net/gzh0222/article/detai ...
- 8 云计算系列之Horizon的安装与虚拟机创建流程
preface 在上一章节中,我们可以在无web管理界面上创建并启动虚拟机,虽然可以这么做,但是敲命令太繁琐,所以此时我们可以安装openstack web管理界面,通过web界面的图形化操作open ...
- 研究jenkins集成unittest成图
jenkins搭建完毕,unittest代码编写完毕,触发unittest执行测试的脚本和任务编写完毕,接下来研究生成的结果在页面的可视化. 方案: highcharts 参考资料: http://b ...
- python tornado异步性能测试
测试两个接口 # -*- coding:utf-8 -*- import time import tornado.web import tornado.gen import tornado.ioloo ...
- selenium +chrome headless Adhoc模式渲染网页
mannual和adhoc模式比较 Manual vs. Adhoc In the script above, we start the ChromeDriver server process whe ...
- LTS原理分析(version:1.6.9)
LTS做到分布式唯一执行的原理:LTS采用类似Hadoop作业提交的方式,由JobClient submit作业任务给JobTracker,然后JobTracker会预生成一批作业任务的执行时间记录( ...
- Java实现文件批量重命名
Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...