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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【复杂系统迁移 .NET Core平台系列】之迁移项目工程

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

分析股票大数据_Python大数据分析量学祖师爷网站数据

本文通过Python抓取股海明灯涨停预报数据进行分析&#xff0c;股海明灯网站涨停预报数据跟踪功能是需要VIP权限&#xff0c;但这个权限分析数据的功能有限&#xff0c;我们抓取数据后丰富相关功能。一、点击涨停预报后打开以下页面。通过python程序将数据抓取到后台数据库&…

【复杂系统迁移 .NET Core平台系列】之界面层

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

.NET Core MVC扩展实践

源宝导读&#xff1a;明源云ERP的底层架构正在向.Net Core跨平台迁移&#xff0c;我们在过程中遇到了部分不兼容的问题。本文将介绍技术团队如何解决.Net Core与已有MVC框架不兼容问题的解决方案。一、背景云ERP的建模平台是基于.NET Framework构建的&#xff0c;在向.NET Core…

matlab title多个标题_MATLAB中的直方图处理及均衡化

直方图是多种空间域处理技术的基础。仿图操作能有效地用于图像增强&#xff0c;直方图固有的信息在其他图像处理应用中也是非常有用的&#xff0c;如图像压缩与分割。訪图在软件中易于计算&#xff0c;也适用于商用硬件设备&#xff0c;因此直方图成为实时图像处理的一个流行工…

成本计算引擎动态规则解析技术详解

源宝导读&#xff1a;随着企业数字系统应用的越来越深入&#xff0c;业务计算方式也变的越来越复杂&#xff0c;灵活度要求也越来越高。本文将介绍通过将配置动态转换成可执行代码的方式&#xff0c;解决业务计算高度灵活化配置的技术方案。一、背景ERP本质上是一种“业务密集型…

Kubernetes,多云和低代码数据科学:2020年最热门的数据管理趋势

新兴技术为我们的数据之旅铺平了道路。我们已经看到Kubernetes在应用程序自动化方面处于领先地位&#xff0c;越来越多的公司将赌注押在了云上&#xff0c;以及当今的企业对数据科学的依赖程度正不断提&#xff0c;再加上对大数据的人工智能高级分析&#xff0c;可以看到数据管…

matlab光盘映像文件可以删除吗_DVD-Cloner 2020 for mac(DVD光盘刻录工具) 7.00.715

DVD-Cloner Gold 2020版是功能强大的DVD光盘刻录工具&#xff0c;DVD-Cloner Gold 2020版可以轻松刻录光盘以及蓝光光盘&#xff0c;用户可以将任何的文件刻录到DVD光盘中&#xff0c;并可以制作为蓝光光盘&#xff0c;可以很方便地录入视频到光盘中进行保存&#xff0c;刻录好…

性能优化 = 改改代码?

大家好&#xff0c;我是Z哥。好久没写技术文章了&#xff0c;最近正好有进行一些思考&#xff0c;顺手写出来分享给大家。如果不是程序员的话&#xff0c;可以快速扫一眼正文的几个小标题&#xff0c;快速略过即可&#xff0c;毕竟思路和专业无关&#xff0c;很多是相通的。&am…

使用refs获取节点_闲庭信步聊前端 - 原来你是这样的Refs

一、refs 的由来什么是refsrefs是拿到真实的DOM节点和React元素实例的一种方法。在React官方文档中有提到Refs 提供了一种方式&#xff0c;允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。 React是单向的数据流&#xff0c;父子组件的交互是通过props。修改子组件…

从TimeSpan说起

小编在编写WPF程序时&#xff0c;需要做一个判断&#xff1a;定时使用Modbus协议使用Quartz.net 定时任务读取设备中的数据&#xff0c;同时也使用定时任务判断是否长时间获取不到数据的情况&#xff0c;如果程序中超过一分钟没有获取到数据&#xff08;数据没有更新&#xff0…

如何维持手机电池寿命_延长手机电池寿命终极技巧教学,iPhone和安卓手机皆适合...

每隔一阵子就开始有不少用户询问&#xff0c;iPhone电池健康度又剩下多少了&#xff0c;怎么朋友的还维持在100%&#xff0c;是不是我手机电池出问题&#xff0c;引起不少用户翻白眼。会有电池健康度&#xff0c;最主要是要让大家了解目前手机电池当前寿命&#xff0c;只要电池…

2020年了,再不会Https就老了

合格的web后端程序员&#xff0c;除搬砖技能&#xff0c;还必须会给各种web服务器启用Https&#xff0c;本文结合ASP.NET Core部署模型聊一聊启用Https的方式。温故知新目前常见的Http请求明文传输&#xff0c;请求可能被篡改&#xff0c;访问的站点可能被伪造。HTTPS是HTTP加上…

c语言枚举类型例题_[开源资讯]Zig 0.6.0 发布,想要挑战 C 语言

Zig 0.6.0 已发布&#xff0c;这是一门通用编程语言&#xff0c;专为稳定性、可维护性和性能而设计&#xff0c;追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性&#xff1a;手动管理内存与 C 语言竞争而非依赖它&#xff0c;Zig 标准库不依赖于 libc轻量而…

【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置

在上篇文章《【实战 Ids4】║客户端、服务端、授权中心全线打通&#xff01;》中&#xff0c;我们正式的将三站打通&#xff0c;发布过后&#xff0c;有小伙伴反馈&#xff0c;可能Nginx对配置HTTPS安全协议有点儿问题&#xff0c;我也就半夜趁着没人打扰&#xff0c;疯狂的研究…

快速幂 a*b%c

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 在CSDN上传博客方便复习。 //wecccccccc //2020.12.30 #include <iostream> using namespace std; typedef long long int ll;ll fast_power(ll a, ll b, ll c) {ll ans 1;a % c;//防止一开始输入的值过…

thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口

ThinkPHP是php程序员们经常使用的框架之一&#xff0c;运用框架来开发网站无疑减轻了我们代码量&#xff0c;加快了我们的开发速度&#xff0c;框架底层封装的方法和函数使用起来简直不能太爽。今天给大家总结一个小案例&#xff0c;如何实现一个快递查询的接口。所谓接口&…

64位整数乘法

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 //Wecccccccc //2020.12.30 #include <iostream> using namespace std; typedef unsigned long long int ull;int main() {ull a, b, c;cin >> a >> b >> c;ull ans…

分布式锁的实现与探索

源宝导读&#xff1a;大型的信息化系统对数据准确性的要求很高&#xff0c;所以经常会使用事务、锁、队列等技术&#xff0c;保障高并发下的数据一致性问题。本文将讨论在分布式部署模式下&#xff0c;如何利用锁机制保证业务数据准确的技术探索与实践。一、背景分布式场景下的…

matlab 角度转四元数_基于Matlab的机械臂路径规划

什么是 trajectory(路径)规划中文路径在英语中可能有两种翻译&#xff1a;1. path2. trajectory首先告诉大家&#xff0c;我们所说的“路径”是后者——trajectory。我们看一下这两种“路径”在机械臂的世界里有什么区别。设想机械臂的 end-effector 要从 A 点运动到 B 点&…