
Product
Socket Now Protects the Chrome Extension Ecosystem
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
zuijin.ExcelTemplate
Advanced tools
这是一个基于 NPOI 的 Excel 模版引擎, 可以将 Excel 表格映射到 .Net 类实体,支持 混排、导入和导出双向模版 以及 错误信息管理。
什么是 Form ?什么是 Table ?
这是 Form ↓↓,每个数据基本上对应固定的单元格:
这是 Table ↓↓,映射的是一个集合,只有确定的列,没有固定的行:
这是混排 ↓↓,两种需要完全不同处理逻辑的东西混杂在一起:
单纯的 Form 或 Table,处理起来还是比较简单的。而当两者混排起来的话,就会变得稍微复杂一点。因为对于 Table 来说,通常情况下数据量是变化的,也就是说,在 Excel 表格里的实际占用的纵向高度是随着实际情况变化的,排在表格底下的其他数据,必然要被挤到更下面的空间,这使得模版设计时所指定的坐标,无论是 Form 还是 Table ,都不是固定不变的,这就要求必须拥有一定的自适应能力。
本项目支持混排,但必须要注意的是,因为混排的情况比较复杂,实在无法做到支持任何形式的混排。所以这里的混排是有一定的限制的,只支持 “垂直方向的混排”,在水平方向上,不能同时出现 Form 和 Table,因为 Table 的动态伸缩特点,实在难以跟 Form 兼容。
同一个模版,同时支持导入和导出,不需要纠结区分 导入模版 还是 导出模版,这在使用起来是比较省心的,但同时也是一种约束。约束了 导出 功能不可以放飞自我了,因为导出过于酷炫的话,就会使得 导入 变成一场灾难。
这是一个非常重要且有用的功能,也是我决定自己动手造轮子的一个重要推动力。
对于导入功能,我们经常需要对数据进行校验,而校验失败的数据,输出错误提示时最好定位到具体的单元格坐标。这时会存在一个两难的局面,那就是我们把 Excel 映射到实体后,更希望直接使用实体字段来进行后续的操作,但又因为错误提示需要获取所对应的 Excel 单元格坐标,我们不得不回归手动操作 Excel 或者 手动计算坐标,自动化变成了手动,写代码体验实在不太好。
而这里,我们可以以一种 简单 且 直观 的方式进行错误信息的录入,使用 lambda 表达式的形式,模版引擎会自动计算对应的单元格坐标:
builder.For(a => a.Name).AddMessage("名称错误");
详见 错误提示管理
详见 使用示例
FAQs
Package Description
We found that zuijin.exceltemplate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.