WeihanLi.Npoi 支持 ShadowProperty 了

在 ef 里有个 shadowproperty 的概念,你能够经过 fluentapi 的方法来界说一个不在 .net model 里界说的特点,只能经过 ef 里的 change tracker 来操作这种特点。

在导出 excel 的时分,或许期望导出的列并不是都界说好在咱们的 model 中的,有的或许仅仅想添加一列导出某个特点中的嵌套特点之中的某一个特点值,或许我便是单纯的想多界说一列,而这个时分或许 model 是其他当地写死的,不方便改。

所以 weihanli.npoi 从 1.6.0 版别开端支撑 shadowproperty ,将 ef 里的 shadowproperty 引进到 excel 导出里,现在来说 shadowproperty 是不可写的,读取的话也仅仅回来一个类型的默认值,不支撑 changetracker,不支撑改。

来看一个简略运用示例:

using system;
using system.collections.generic;
using system.io;
using weihanli.npoi;
namespace npoitest
 public class program
 public static void main
 var settings = excelhelper.settingfor testentity 
 settings.property
 .hascolumnindex;
 // settings.property
 // .hasoutputformatter = $ {聚星平台value[0].value},{value[2].value} )
 // .hascolumntitle
 // .hascolumnindex;
 settings.property.ignored;
 settings.property
 .hasoutputformatter= $ {entity.userfields[2].value} )
 settings.property
 .hasoutputformatter= $ {entity.userfields[1].value} )
 var data = new list testentity 
 new testentity
 name = xiaoming ,
 totalscore = 100,
 userfields = new userfield[]
 new userfield
 name = 名字 ,
 value = xaioming ,
 new userfield
 name = 部分 ,
 value = 1212 
 new userfield
 name = 工号 ,
 value = 121213131 
 data.toexcelfile}\output.xls 
 console.writeline( complete. 
 private class testentity
 public string name { get; set; }
 public userfield[] userfields { get; set; }
 public int totalscore { get; set; }
 private class userfield
 public string fid { get; set; }
 public string name { get; set; }
 public string value { get; set; }
}

导出作用如下:

能够看到,咱们为导出的 excel 添加在本来的 model 里没有界说的两列,凭借于此,咱们能够更灵敏的定制要导出的内容

快来体会吧,欢迎反应,欢迎 issue

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处://www.businesspLangh.com/ganhuo/7.html