WeihanLi.Npoi 1.7.0 更新介绍
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 更新介绍相关推荐
- WeihanLi.Npoi 1.10.0 更新日志
WeihanLi.Npoi 1.10.0 更新日志 Intro 上周有个网友希望能够导入Excel时提供一个 EndRowIndex 来自己控制结束行和根据字段过滤的功能,周末找时间做了一下这个 fe ...
- WeihanLi.Npoi 1.21.0 Released
WeihanLi.Npoi 1.21.0 Released Intro WeihanLi.Npoi 是一个基于 netstandard2.0 的一个 NPOI 扩展库,主要用于导入导出 Excel 以 ...
- WeihanLi.Npoi 1.20.0 Released
WeihanLi.Npoi 1.20.0 Released Intro WeihanLi.Npoi 是一个基于 netstandard2.0 的一个 NPOI 扩展库,主要用于导入导出 Excel 以 ...
- WeihanLi.Npoi 1.18.0 Released
WeihanLi.Npoi 1.18.0 Released Intro 前段时间一直在想,把现在的配置做成类似于 AutoMapper 和 FluentValidation 那样,把每个类型的 map ...
- 蓝松视频编辑4.5.0更新介绍
蓝松视频编辑4.5.0更新介绍 主要更新 1. VLOG 模板; 2. 视频抠像 Android 细节: 1. 增加VLog的模块, vlog支持片尾, 片尾视频动画和文字动画可自定义; 2. 增 ...
- WeihanLi.Npoi 近期更新
WeihanLi.Npoi 近期更新 Intro 最近对我的 NPOI 扩展做了一些改变,一方面提高性能,一方面修复bug,增加一些新的功能来让它更加好用,前几天发布了 1.5.0 版本,下面来介绍一 ...
- 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 ...
- magic4.0什么时候升级鸿蒙,科技知识:magic4.0什么时候更新 magic4.0更新时间介绍...
今天要来给大家介绍下magic4.0什么时候更新 magic4.0更新时间介绍,之所以要来给大家针对这个magic4.0什么时候更新 magic4.0更新时间介绍进行一个介绍的主要目的是现在很多小伙伴 ...
- WeihanLi.Npoi 导出支持自定义列内容啦
WeihanLi.Npoi 导出支持自定义列内容啦 Intro 之前也有网友给提出过希望列合并或者自定义列内容的 issue 或请求,起初因为自己做 WeihanLi.Npoi 这个扩展的最初目的是导 ...
最新文章
- Permission denied 故障
- .NETCore 下支持分表分库、读写分离的通用 Repository
- pandas对每十行做批量操作_pandas批量处理数据
- P1352 没有上司的舞会
- java使用httpclient发送post、get、put、delete请求(application/json)
- oracle 批量杀死 死锁进程
- react改变checkbox的文字类型_React Checkbox不发送onChange
- IEumberable和IQueryable的区别
- CentOS_Oracle Enterprise Manager 11g 页面中文无法显示
- ubuntu16.04安装mongodb
- docker镜像打包
- 安卓WindowManager注入事件如何跳出进程间安全限制
- 生产者消费者实现用c语言用物品1,物品2等来代替,用C语言编写程序:生产者和消费者之间实现同步与互斥问题...
- Beautiful Soup 4.2.0 文档
- 情人节c语言程序,情人节c语言代码.doc
- 李飞飞划重点的「具身智能」,走到哪一步了?
- JVM3--垃圾回收机制:垃圾回收概述、垃圾回收算法及分类
- 在安装sublime之后,我为何毫不犹豫卸载了Dreamweaver?
- 【完美解决】爬虫伪装代理IP方案
- 多线程编程之Linux环境下的多线程(三)——好文
热门文章
- 关于Windows® API Code Pack for Microsoft® .NET Framework
- android 系统之ContentProvider
- 动态的管理ASP.NET DataGrid数据列【转载】
- 共享没有权限访问权限_如何与家人共享SmartThings访问权限
- Spring Data REST API集成Springfox、Swagger
- HUAWEI nova 青春版闪速快充,让追剧不再断电
- Bzoj2656 [Zjoi2012]数列(sequence)
- Linux入门之进程管理(4)之进程与文件
- 基于css3的鼠标滑动按钮动画之CSS--续
- bigpipe merge对F5做批量配置