获取对象属性值=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的 ...
随机推荐
- CentOS 7 之前好好的,突然一天启动时黑屏,没有登陆界面了(配置 network-scripts 连网)
原因: 百度大神说是Gnome(一套纯粹自由的计算机软件,运行在操作系统上,提供图形桌面环境)不行了. 解决方法: 1. 重启系统,ctrl + alt + F2 进入命令行界面. 2. sudo s ...
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...
- e832. 从JTabbedPane中移动卡片
To move a tab, it must first be removed and then reinserted into the tabbed pane as a new tab. Unfor ...
- python的动态加载机制??
if __name__ == '__main__': import sys from PyQt5.QtWidgets import QApplication app = QApplication(sy ...
- 使用DUPLICATE 方式创建ORACLE 11G DG备库环境
我的最佳实践 ① 手动创建好初始化参数文件: *.audit_file_dest='E:\APP\XJXU\ADMIN\ORASTAND\ADUMP'*.control_files='E:\APP\X ...
- JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for
查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. [js] view plaincopy var json = [ {"id":"1" ...
- windows版mysql配置--my.ini
完整配置如下: # power by phpStudy 2014 www.phpStudy.net 官网下载最新版 [client] port=3306 [mysql] [mysqld] port=3 ...
- MySql:charset和collation的设置
From: http://www.2cto.com/database/201302/189920.html MySql:charset和collation的设置 charset 和 collati ...
- DWZ主从表界面唯一性验证(后台验证)(三)
之前的博客介绍了前台自写js来验证主动表的唯一性,除了前台的验证,我也学习了后台的一些判断. 再次介绍一下背景需求: 利用DWZ的主从表结构批量添加课程信息,在提交表单后,触发Action事件 1.是 ...
- 无插件用Terminal/TotalTerminal的开当前finder位置
从win7开始,在资源管理器内按住shift再右键,是可以选择“在当前位置打开命令行”的,相当有用,这个命令在mac下是如何实现的呢? 前提:我讲的是TotalTerminal下的方案,原生的term ...