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

最新文章

  1. java13
  2. [DL学习笔记]从人工神经网络到卷积神经网络_2_卷积神经网络
  3. DIV的不能包住子集解决办法
  4. 动态加载JS脚本
  5. 开源PLM软件Aras详解六 角色与用户以及权限
  6. jQuery Wheel 环形菜单插件5种效果演示
  7. 实现loading动画效果
  8. 构架高性能WEB网站的几点知识
  9. 我在北京找工作(二):java实现算法&lt;1&gt; 冒泡排序+直接选择排序
  10. spark第二篇--基本原理
  11. sina微博上看到的关于android界面设计相关的规范
  12. 移动OA日程支持费用及评论
  13. xmlplus 组件设计系列之三 - 文本框
  14. 表达式求值(二叉树方法/C++语言描述)(二)
  15. 开源 rafy4j 框架
  16. kubernetes版本融合解决方案
  17. Python filter() 函数
  18. Spring的原理性总结
  19. GMA Round 1 极坐标的愤怒
  20. Redhat6.4安装MongoDBv3.6.3

热门文章

  1. 自定义View系列教程02--onMeasure源码详尽分析
  2. Save and Load from XML
  3. 04Redis入门指南笔记(内部编码规则简介)
  4. @loj - 6353@「CodePlus 2018 4 月赛」组合数问题 2
  5. oracle 识别’低效执行’的SQL语句
  6. npx cowsay 让动物说话~
  7. Clipboard 自动复制功能,ios复制失败,换方案 user-select: text ;长按复制 (ios 兼容,长按复制)
  8. functiils.lru_cache缩短递归时间
  9. 洛谷P1449 后缀表达式 题解 栈
  10. UVA 11992 ——线段树(区间修改)