博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取对象属性值=NPOI EXPORT
阅读量:6453 次
发布时间:2019-06-23

本文共 3880 字,大约阅读时间需要 12 分钟。

使用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);

 

你可能感兴趣的文章
1.每次按一下pushbutton控件,切换图片?
查看>>
Python 嵌套列表解析
查看>>
[GXOI/GZOI2019]旧词——树链剖分+线段树
查看>>
android 补间动画的实现
查看>>
2017年广东省ACM省赛(GDCPC-2017)总结
查看>>
第十届蓝桥杯B组C++题目详解和题型总结
查看>>
树的存储结构2 - 数据结构和算法42
查看>>
简单理解函数回调——同步回调与异步回调
查看>>
Android 多个Activity 跳转及传参
查看>>
anroid 广播
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>
开篇,博客的申请理由
查看>>
点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。...
查看>>
Ubuntu常用笔记
查看>>
Token和session 详解
查看>>
JMeter IP欺骗压测
查看>>
Serializers 序列化组件
查看>>
最简单的RPC框架实现
查看>>