You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

zuijin.ExcelTemplate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zuijin.ExcelTemplate

Package Description

1.0.0
nugetNuGet
Version published
Maintainers
1
Created
Source

ExcelTemplate

简介

这是一个基于 NPOI 的 Excel 模版引擎, 可以将 Excel 表格映射到 .Net 类实体,支持 混排、导入和导出双向模版 以及 错误信息管理。

1. Form 和 Table 混排

什么是 Form ?什么是 Table ?

这是 Form ↓↓,每个数据基本上对应固定的单元格:

这是 Table ↓↓,映射的是一个集合,只有确定的列,没有固定的行:

这是混排 ↓↓,两种需要完全不同处理逻辑的东西混杂在一起:

单纯的 Form 或 Table,处理起来还是比较简单的。而当两者混排起来的话,就会变得稍微复杂一点。因为对于 Table 来说,通常情况下数据量是变化的,也就是说,在 Excel 表格里的实际占用的纵向高度是随着实际情况变化的,排在表格底下的其他数据,必然要被挤到更下面的空间,这使得模版设计时所指定的坐标,无论是 Form 还是 Table ,都不是固定不变的,这就要求必须拥有一定的自适应能力。

本项目支持混排,但必须要注意的是,因为混排的情况比较复杂,实在无法做到支持任何形式的混排。所以这里的混排是有一定的限制的,只支持 “垂直方向的混排”,在水平方向上,不能同时出现 Form 和 Table,因为 Table 的动态伸缩特点,实在难以跟 Form 兼容。

2.导入和导出双向模版

同一个模版,同时支持导入和导出,不需要纠结区分 导入模版 还是 导出模版,这在使用起来是比较省心的,但同时也是一种约束。约束了 导出 功能不可以放飞自我了,因为导出过于酷炫的话,就会使得 导入 变成一场灾难。

3.错误信息管理(重点)

这是一个非常重要且有用的功能,也是我决定自己动手造轮子的一个重要推动力。

对于导入功能,我们经常需要对数据进行校验,而校验失败的数据,输出错误提示时最好定位到具体的单元格坐标。这时会存在一个两难的局面,那就是我们把 Excel 映射到实体后,更希望直接使用实体字段来进行后续的操作,但又因为错误提示需要获取所对应的 Excel 单元格坐标,我们不得不回归手动操作 Excel 或者 手动计算坐标,自动化变成了手动,写代码体验实在不太好。

而这里,我们可以以一种 简单直观 的方式进行错误信息的录入,使用 lambda 表达式的形式,模版引擎会自动计算对应的单元格坐标:


builder.For(a => a.Name).AddMessage("名称错误");

详见 错误提示管理

使用示例

详见 使用示例

Keywords

FAQs

Package last updated on 01 Jul 2025

Did you know?

Socket

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.

Install

Related posts