WeihanLi.Npoi 1.7.0 更新介绍

Intro

昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter/ ColumnOutputFormatter,又进一步增强了导入导出的灵活性,来看下面的示例

ColumnInputFormatter/ColumnOutputFormatter

示例 Model:

internal abstract class BaseEntity
{public int PKID { get; set; }
}
internal class TestEntity : BaseEntity
{public Guid SettingId { get; set; }public string SettingName { get; set; }public string DisplayName { get; set; }public string SettingValue { get; set; }public string CreatedBy { get; set; } = "liweihan";public DateTime CreatedTime { get; set; } = DateTime.Now;public string UpdatedBy { get; set; }public DateTime UpdatedTime { get; set; }public bool Enabled { get; set; }
}

示例配置:

var setting = ExcelHelper.SettingFor<TestEntity>();
// ExcelSetting
setting.HasAuthor("WeihanLi").HasTitle("WeihanLi.Npoi test").HasDescription("WeihanLi.Npoi test").HasSubject("WeihanLi.Npoi test");
setting.HasSheetConfiguration(0, "SystemSettingsList", 1, true);
// setting.HasFilter(0, 1).HasFreezePane(0, 1, 2, 1);
setting.Property(_ => _.SettingId).HasColumnIndex(0);
setting.Property(_ => _.SettingName).HasColumnTitle("SettingName").HasColumnIndex(1);
setting.Property(_ => _.DisplayName).HasOutputFormatter((entity, displayName) => $"AAA_{entity.SettingName}_{displayName}").HasInputFormatter((entity, originVal) => originVal.Split(new[] { '_' })[2]).HasColumnTitle("DisplayName").HasColumnIndex(2);
setting.Property(_ => _.SettingValue).HasColumnTitle("SettingValue").HasColumnIndex(3);
setting.Property(_ => _.CreatedTime).HasColumnTitle("CreatedTime").HasColumnIndex(4).HasColumnWidth(10).HasColumnFormatter("yyyy-MM-dd HH:mm:ss");
setting.Property(_ => _.CreatedBy).HasColumnInputFormatter(x => x += "_test").HasColumnIndex(4).HasColumnTitle("CreatedBy");
setting.Property(x => x.Enabled).HasColumnInputFormatter(val => "启用".Equals(val)).HasColumnOutputFormatter(v => v ? "启用" : "禁用");
setting.Property("HiddenProp").HasOutputFormatter((entity, val) => $"HiddenProp_{entity.PKID}");
setting.Property(_ => _.PKID).Ignored();
setting.Property(_ => _.UpdatedBy).Ignored();
setting.Property(_ => _.UpdatedTime).Ignored();

测试代码:

var entities = new List<TestEntity>()
{new TestEntity(){PKID = 1,SettingId = Guid.NewGuid(),SettingName = "Setting1",SettingValue = "Value1",DisplayName = "ddd1"},new TestEntity(){PKID=2,SettingId = Guid.NewGuid(),SettingName = "Setting2",SettingValue = "Value2",Enabled = true},
};
var path = $@"{tempDirPath}\test.xlsx";
entities.ToExcelFile(path);
var entitiesT0 = ExcelHelper.ToEntityList<TestEntity>(path);

导出结果:

导入结果:

More

新版本发布,快来尝鲜吧~

ColumnInputFormatter 结合之前的 InputFormatter/ OutputFormatter 能够帮助你更灵活的导入导出,快来试试吧~~

Reference

  • https://github.com/WeihanLi/WeihanLi.Npoi

  • https://github.com/WeihanLi/WeihanLi.Npoi/blob/dev/samples/DotNetCoreSample/Program.cs

  • https://www.nuget.org/packages/WeihanLi.Npoi/

WeihanLi.Npoi 1.7.0 更新介绍相关推荐

  1. WeihanLi.Npoi 1.10.0 更新日志

    WeihanLi.Npoi 1.10.0 更新日志 Intro 上周有个网友希望能够导入Excel时提供一个 EndRowIndex 来自己控制结束行和根据字段过滤的功能,周末找时间做了一下这个 fe ...

  2. WeihanLi.Npoi 1.21.0 Released

    WeihanLi.Npoi 1.21.0 Released Intro WeihanLi.Npoi 是一个基于 netstandard2.0 的一个 NPOI 扩展库,主要用于导入导出 Excel 以 ...

  3. WeihanLi.Npoi 1.20.0 Released

    WeihanLi.Npoi 1.20.0 Released Intro WeihanLi.Npoi 是一个基于 netstandard2.0 的一个 NPOI 扩展库,主要用于导入导出 Excel 以 ...

  4. WeihanLi.Npoi 1.18.0 Released

    WeihanLi.Npoi 1.18.0 Released Intro 前段时间一直在想,把现在的配置做成类似于 AutoMapper 和 FluentValidation 那样,把每个类型的 map ...

  5. 蓝松视频编辑4.5.0更新介绍

    蓝松视频编辑4.5.0更新介绍 主要更新 1. VLOG 模板;  2.  视频抠像 Android 细节: 1. 增加VLog的模块, vlog支持片尾, 片尾视频动画和文字动画可自定义; 2. 增 ...

  6. WeihanLi.Npoi 近期更新

    WeihanLi.Npoi 近期更新 Intro 最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一 ...

  7. wpsarm64linux,WPS Office 2019 For Linux 11.1.0.9080版发布下载,附更新介绍和安装

    版本号为11.1.0.9080的WPS Office 2019 For Linux发布了,提供有64位Rpm格式包.64位Deb格式包下载,兼容X64.MIPS.ARM计算机,该版本发布时间是2020 ...

  8. magic4.0什么时候升级鸿蒙,科技知识:magic4.0什么时候更新 magic4.0更新时间介绍...

    今天要来给大家介绍下magic4.0什么时候更新 magic4.0更新时间介绍,之所以要来给大家针对这个magic4.0什么时候更新 magic4.0更新时间介绍进行一个介绍的主要目的是现在很多小伙伴 ...

  9. WeihanLi.Npoi 导出支持自定义列内容啦

    WeihanLi.Npoi 导出支持自定义列内容啦 Intro 之前也有网友给提出过希望列合并或者自定义列内容的 issue 或请求,起初因为自己做 WeihanLi.Npoi 这个扩展的最初目的是导 ...

最新文章

  1. Permission denied 故障
  2. .NETCore 下支持分表分库、读写分离的通用 Repository
  3. pandas对每十行做批量操作_pandas批量处理数据
  4. P1352 没有上司的舞会
  5. java使用httpclient发送post、get、put、delete请求(application/json)
  6. oracle 批量杀死 死锁进程
  7. react改变checkbox的文字类型_React Checkbox不发送onChange
  8. IEumberable和IQueryable的区别
  9. CentOS_Oracle Enterprise Manager 11g 页面中文无法显示
  10. ubuntu16.04安装mongodb
  11. docker镜像打包
  12. 安卓WindowManager注入事件如何跳出进程间安全限制
  13. 生产者消费者实现用c语言用物品1,物品2等来代替,用C语言编写程序:生产者和消费者之间实现同步与互斥问题...
  14. Beautiful Soup 4.2.0 文档
  15. 情人节c语言程序,情人节c语言代码.doc
  16. 李飞飞划重点的「具身智能」,走到哪一步了?
  17. JVM3--垃圾回收机制:垃圾回收概述、垃圾回收算法及分类
  18. 在安装sublime之后,我为何毫不犹豫卸载了Dreamweaver?
  19. 【完美解决】爬虫伪装代理IP方案
  20. 多线程编程之Linux环境下的多线程(三)——好文

热门文章

  1. 关于Windows® API Code Pack for Microsoft® .NET Framework
  2. android 系统之ContentProvider
  3. 动态的管理ASP.NET DataGrid数据列【转载】
  4. 共享没有权限访问权限_如何与家人共享SmartThings访问权限
  5. Spring Data REST API集成Springfox、Swagger
  6. HUAWEI nova 青春版闪速快充,让追剧不再断电
  7. Bzoj2656 [Zjoi2012]数列(sequence)
  8. Linux入门之进程管理(4)之进程与文件
  9. 基于css3的鼠标滑动按钮动画之CSS--续
  10. bigpipe merge对F5做批量配置