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();//每次打印需要累加打印的位移量保证后面打印区域的打印模板位移是递增的
}
代码整理好后在发链接:
NPOI封装的更多相关文章
- 基于 Aspose.Cells与XML导入excel 数据----操作类封装
前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...
- NOPI实现导入导出泛型List,支持自定义列
概述 业务上需要自定义列的Excel的导入导出,在网上看了好多资料,很多都是有Bug而且都是支持Excel和DataTable的转换,所以自己总结了一下,应用.NET平台上的NPOI封装了支持自定义列 ...
- .Net之Nopi Excel数据导出和批量导入功能
一.介绍NPOI和编写demo的原因 1.Npoi是什么: 它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能 ...
- .Net Excel操作之NPOI(二)常用操作封装
一.Excel数据导出常用操作 1.指定表头和描述 2.指定数据库中读出的数据集合 二.ExcelExport封装 /// <summary> /// Excel常用的表格导出逻辑封装 / ...
- 【EXCEL终极总结分享】基于NPOI扩展封装的简易操作工具类库(简单灵活易用,支持导出、导入、上传等常见操作)
对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导 ...
- NPOI读写Excel组件封装Excel导入导出组件
后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...
- .Net Core下基于NPOI对Excel、Word操作封装
本库进行了重写,如果需要请转移到下文查看: https://www.cnblogs.com/holdengong/p/10889780.html 框架与依赖 框架:.NET Standard 2.0 ...
- 自己封装的常用NPOI文件导出源码
示例: 1. 2.示例2 源码下载地址:https://github.com/aa1356889/NPOICode
- 封装NPOI导出含下拉列表的Excel
/// <summary> /// 绑定数据的方法 /// </summary> /// <param name="ssfworkbook">H ...
随机推荐
- log4j的配置信息(转)
首先,在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对Logger.Append ...
- 微设计(www.weidesigner.com)介绍系列文章(三)
微设计(www.weidesigner.com)是一个专门针对微信公众账号提供营销推广服务而打造的第三方平台. 3.1 优惠券 优惠券是用于微信上与顾客互动的一种营销方式,不仅能够展现自己的产品,更能 ...
- Tigase XMPP Server在CentOS部署和配置
Tigase XMPP Server在CentOS部署与配置 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 以下讲述Tigase XMPP Server ...
- C++ 虚函数表决心
C++ 虚函数表解析 xml:namespace prefix = o /> 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制. 关 ...
- JavaEE(4) - JMS实现企业PTP消息处理
1. 在Weblogic服务器上配置PTP消息目的 配置持久化: Services-->Persistence Stores-->New(Create FileStore, Create ...
- ENode框架初始化
ENode框架初始化 前言 Conference案例是使用ENode框架来开发的.之前我没有介绍过ENode框架是如何启动的,以及启动时要注意的一些点,估计很多人对ENode框架的初始化这一块感觉很复 ...
- JavaScript总结一下--创建对象
在JavaScript象主要就是用下面三种语句: var box=new Object(); 或var box=Object(); var box={};//字面量 function Bo ...
- e.target 和 e.srcElement 的使用问题
ie 下的event.srcElement从字面上可以看出来有以下关键字:事件.源(它的意思就是:当前事件的源), 我们可以调用他的各种属性就像:document.getElementById(&qu ...
- mysql_navicat-permium 在Mac下破解方法
首先下载符合当前系统支持的navicat-permium版本,我自己下载的是11.0.16 然后我们开始破解旅程,先要安装上navicat-permium,记住千万不要打开(如果你打开了不好意思,卸了 ...
- Android_显示器本身被卸载应用程序
1.经jni实现功能 //LOG宏定义 #define LOG_INFO(tag, msg) __android_log_write(ANDROID_LOG_INFO, tag, msg) #defi ...