NPOI封装

一、对于Excel的操作封装主要针对对于Excel的写入的封装,对于打印基类的封装主要引入了两个概念

1、打印区域模板类

2、打印集合类

如实例模板中需要打印的区域模块

如实例模板中需要打印的集合类

二、打印模板类准备

对于一个Excel中的打印区域程序为这两种类的打印字段(属性)都加上指定的特性 [CellPosition(X = 1, Y = 2)]

X代表当前属性需要打印的行,Y代表当前属性所在的列

如果打印区域是集合类型的需要在当前类上加上特性   [CollectionTemplate(RowStartIndex = 29)]

代表当前打印模板在Excel中打印开始的行位置

三、打印

对于准备好的打印类的属性标示完相应的打印位置特性后开始打印

1、打印单实体模板

private void PrintHeader(BudgetHeaderPrintTemplate data)

{

Type type = data.GetType();

base.SetValue(type, data);

}

2、 打印集合类实体模板

private void PrintOtherFabricList(List<BudgetOtherFabricPrintTemplate> lstData)

{

if (lstData.Count == 0)

{

return;

}

Type type = lstData.FirstOrDefault().GetType();

var intXBase = base.GetRowStartIndex(type);

decimal money =0;

foreach (BudgetOtherFabricPrintTemplate item in lstData)

{

if (item.Summary != null)

{

money = money + item.Summary.Value;

}

}

#region 统计行信息

BudgetOtherFabricPrintTemplate tAllMoney = new BudgetOtherFabricPrintTemplate();

tAllMoney.TemplateHasTax = "共计";

tAllMoney.Summary = money;

tAllMoney.Price = -1;

tAllMoney.Num = -1;

if (lstData.Count() > 1)

{

lstData.Add(tAllMoney);

}

#endregion

//集合打印

lstData.ForEach(data =>

{

intXBase++;

base.SetValue(type, data, intXBase , base.GetCopyRow(intXBase));

});

this.OffSet += lstData.Count();//每次打印需要累加打印的位移量保证后面打印区域的打印模板位移是递增的

}

代码整理好后在发链接:

时间: 2024-11-11 00:46:27

NPOI封装的相关文章

NOPI实现导入导出泛型List,支持自定义列

业务上需要自定义列的Excel的导入导出,在网上看了好多资料,很多都是有Bug而且都是支持Excel和DataTable的转换,所以自己总结了一下,应用.NET平台上的NPOI封装了支持自定义列的Excel导入导出到泛型List. 先大概说一下思路和原理,最后会附上源代码和demo供小伙伴们参考.有问题欢迎留言~ List To Excel: 参数:泛型集合数据,需要导出列名 根据提供的列名过滤集合的字段,并新建NPOI行,填充表头(应用字典类型替换数据列名为想要显示的名称)  并循环添加数据,

【EXCEL终极总结分享】基于NPOI扩展封装的简易操作工具类库(简单灵活易用,支持导出、导入、上传等常见操作)

对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导出则是采用拼接成HTML TABLE的方式,这种在ASP.NET,ASP.NET CORE 中也是可以的,简单方便,依赖Office Excel组件,仅适用于网站服务端. 推荐指数:♥♥♥ 第二种方案:<MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult&g

自己封装的常用NPOI文件导出源码

示例: 1. 2.示例2 源码下载地址:https://github.com/aa1356889/NPOICode

封装NPOI导出含下拉列表的Excel

1 /// <summary> 2 /// 绑定数据的方法 3 /// </summary> 4 /// <param name="ssfworkbook">HSSFWorkbook</param> 5 /// <param name="sheet1">HSSFSheet</param> 6 /// <param name="cateDt">数据源</par

npoi批量

npoi批量导入实现及相关技巧 批量导入功能对于大部分后台系统来说都是不可或缺的一部分,常见的场景-基础数据的录入(部门,用户),用批量导入方便快捷.最近项目需要用到批量导入,决定花点时间写套比较通用的Excel导入功能.经过考虑,最终的实现需要达到 1.不同业务导入无需考虑npoi相关操作,只需要关注自己的业务逻辑,这里的业务逻辑最重要的两点(数据校验和数据保存)  2.导入异常(模板不匹配,数据填写错误...),提醒信息准确精细,达到帮助用户修正数据的目地 在线体验地址:http://tm.

数据字典生成工具之旅(4):NPOI操作EXECL

这篇会介绍NPOI读写EXECL,读写EXECL的组件很多,可以使用微软自己的COM组件EXECL.exe读写,不过这种方式限制很大. 1:客户环境必须装Office(虽然现在机子上不装Office的几乎没有吧) 2:EXECL读写完毕后EXECL还有进程还留在后台  ,内存回收不了 基于以上的原因,就采用了开源组件NPOI进行操作了. 阅读目录 NPOI简介 简单示例 NPOI在本工具的使用及总结 工具源代码下载 学习使用 回到顶部 NPOI简介 1.Excel表格叫做工作表:WorkBook

NPOI导入,导出

概述 NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.NPOI 可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写,包含了大部分EXCEL的特性(单元格样式.数据格式.公式等等).(复制百度百科) 表格导入导出的操作经常会碰到,最近抽空专门封装了一下. 遵循的原则: 1. 一行数据对应一个数据实体,需提供它们二者间的映射关系. 2. 支持合并单元格的导入导出(导出数据只支持竖向合并

NPOI+ExcelReport

分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例) 自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说明我也已同步到GIT中,大家可以下载与学习,不足之处,敬请见谅,谢谢! 一.ExcelUtility类库操作说明(模板导出示例) 1. 1 2 3 4 5 6 7 8 9

.NET-使用NPOI组件将数据导出Excel-通用方法

一.Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题:导出问题: 如果是asp.net,你得在服务器端装Office,几百M呢,还得及时更新它,以防漏洞,还得设定权限允许ASP.net访问COM+,听说如果导出过程中出问题可能导致服务器宕机. Excel会把只包含数字的列进行类型转换,本来是文本型的,它非要把你转成数值型的,像身份证后三位变成000,编号000123会变成123,够智能吧