星空网 > 软件开发 > ASP.net

NPOI 超简单的导出导入

 

首先说说,第一次遇到过匿名导出的那个时候是在我在北京第一家公司,简单的声明一个对象就可以导出,那时候感觉高大上,自己也想研究研究,但是因为头将代码后来加密了根本看不到。好吧,研究了研究放弃了,后来,因为个人原因离职了。

然后进入了一个外包公司,有个功能需求是导入,导出Excel的需求,当时不想复制粘贴简单操作,也因为受到这家公司动态创建实体的代码上的理解,也不喜欢同事导出时先保存到服务器的逻辑,便用NPOI重写了一份帮助类。

因为时间太长了,更换了电脑,当时测试的Demo已经没有了,我分拆出来一个吧。

实现功能:

注:功能目前只支持单Sheet

导入:支持List和DataTable格式,支持数据非空验证。

导出:支持List和DataTable格式,支持Excel格式,支持匿名类List导出及简单样式操作。

定义Excel和实体类及DataTable的对应列实体,此实体主要是用于帮助定义导入导出时的字段对应关系。

及导入是非空验证,导出时配置简单样式等。

下图是主要类结构图:

ExcelColumn是单元格的列定义的实体类;

ExCelColumns是列的集合定义列。

ExcelStream 是防止NPOI释放操作,因为NPOI2开始至今Response到浏览器会出现错误,后来发现是因为内存释放导致的。

NPOIExelHelper 是导入导出的调用方法。

NPOI 超简单的导出导入

NPOI 超简单的导出导入

NPOI 超简单的导出导入

NPOI 超简单的导出导入

帮助类的代码不贴了,稍后传上去各位自己下载,因当时开始的考虑与后来的考虑不一致导致代码有部分重复,没有做整理,谅解。

两个导入节点配置,当然你也可以不用配置,那么导入的第一行的单元格直接对应实体类的列或DataTable的表格。

<?

<root>

<Inbound>

<!--默认读取节点-->

<row height="20" title="入库SN信息" sheetname="sheet1" ignoreerr="false">

<column key="库房所在地" name="WarehouseName" />

<column key="采购订单号" name="PurchaseNumber"></column>

<column key="批次编号" name="BatchNumber" required="true"></column>

<column key="CODE" name="Code" required="true"></column>

<column key="序列号" name="SN" required="true"></column>

<column key="Configid/Bom" name="ConfigId"></column>

<column key="产品描述" name="ProductDescription"></column>

<column key="入库数量" name="Amount"></column>

</row>

</Inbound>

<Outbound>

<row height="50" title="出库SN信息" sheetname="sheet1" ignoreerr="false">

<column key="库房所在地" name="WarehouseName" />

<column key="出库单号" name="OutBoundNumber" required="true"></column>

<column key="合同号" name="ContractNumber"></column>

<column key="CODE" name="Code" required="true"></column>

<column key="序列号" name="SN" required="true"></column>

<column key="Configid/Bom" name="ConfigId"></column>

<column key="产品描述" name="ProductDescription"></column>

<column key="出库数量" name="Amount"></column>

</row>

</Outbound>

</root>

其中ignoreerr是导入是是否忽略错误导入,一般只是否非空验证错误。

required为此列是否非空验证。

下面我们就做一个导入导出测试。因为本人不喜欢用DataTable,所以DataTable方式不做Demo。但是实体类里面支持Dt导入导出。

首先,声明实体类:

NPOI 超简单的导出导入

配置导入导出

NPOI 超简单的导出导入

导入代码:

NPOI 超简单的导出导入

导出代码:

NPOI 超简单的导出导入

NPOI 超简单的导出导入

源码地址:下载链接




原标题:NPOI 超简单的导出导入

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

亚马逊Deals的玩法大揭秘:https://www.kjdsnews.com/a/664474.html
亚马逊选品10步走之第四步:如何找运营切入口:https://www.kjdsnews.com/a/664475.html
亚马逊推出退货绩效控制面板,是鸡肋还是神助攻?:https://www.kjdsnews.com/a/664476.html
亚马逊再添封号由头!独立站是新出路?卖家该如何走出困境?:https://www.kjdsnews.com/a/664477.html
手把手教你TikTok直播(四):https://www.kjdsnews.com/a/664478.html
旺季爆单攻略|假日营销下一站,快抓住感恩节消费趋势:https://www.kjdsnews.com/a/664479.html
武陵山大裂谷周围景点 武陵山大裂谷周围景点图片:https://www.vstour.cn/a/411233.html
南美旅游报价(探索南美洲的旅行费用):https://www.vstour.cn/a/411234.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流