基于Excel实现动态报表

摘要:对软件设计中常涉及的动态报表输出问题,NPOI是一个开源的读写excel文件的组件,通过在软件中调用NPOI组件、设计报表模版,并将数据填充到Excel文件中,解决了软件设计中报表定制输出的问题,并在应用软件的开发中得到应用。并在基于c#开发的系统中实现了Excel动态报表制作技术。

关键词:NOPI;动态报表;报表输出

文献编号:TP317 文献标识码:A 文章编号:1009-3044(201 6129-0101-02

1背景

在管理类软件应用中,用户需要生成各种复杂报表,还要求报表在使用期可以更改格式。以delphi、c#为代表的编程语言中普遍提供报表设计器,但大都是在软件设计期指定报表格式,编译后用户不能不能变更或增加报表。为了解决这些问题,本文采用NPOI组件,NPOI是一款开源免费的组件,不依赖Microsoft Office环境,NPOI还可以应用Microsoft Office本身的公式及格式,在软件中实现客户自定义报表格式,软件填充数据,从而很好的解决了这一问题。

2实现原理

用户使用时自定义Excel模版,Excel模版存入数据库,并制定用户打印数据对应Excel单元格的坐标(row和col)。用户打印时,从数据库***对应的Excel模版生成响应的Excel文件,生成需要打印的数据,并输入响应的Excel单元格中。

3实现过程

3.1报表信息

系统采用access数据库,数据库中存放一个模版信息表和多个数据源信息表。每份报表的数据由一个模版信息表加若干个数据源组成。

模版信息表:模版编号(主键,自动生成)、模版名称、模版内容(OLE对象,即二进制数据)。模版内容自段是要存储xsl模版的文件,该文件定义了格式信息。模版信息表存储对模版的定义,是一个excel文件及报表名。软件生成报表时需要将模版***并保存用户目录上,然后对模版(excel文件)赋值。

数据源:模版编号、字段名、记录类型、开始行号、列号,行数,每页重复。

每一份报表由表头、报表主体、表尾组成;表头和表尾可以选择每页重复;报表主体是多条记录,由多行构成。表头、报表主体、表尾可以分别由不同的数据源构成,整个数据填充过程分三步完成。

3.2保存excel模版

将excel模版作为access数据库的字段存入数据库。生成报表时则将模版取出保存为本地文件,然后将数据输出到模版中。

Filelnfo fi=new Filelnfo(fileName);//x取文件

FileStream fs=fi.OpenRead();

bytel]bytes=new byte[fs.Length];

fs.Read(bytes,0,Convert.ToInt32(fs.Length));//将文件转换为二进制流

string eonnstr="Provider=Mierosoft.Jet.OLEDB.4.0;Da-ta Souree=C:\\Lrpt.mdb":

OleDbConnection cn=new OleDbConnection(connstr);

OleDbCommand cm=new OleDbCommand();

cm.Connection=cn;

mandType=CommandType.Text;

if(cn.State==0)cn.Open();

3.3读取excel模版

从数据库读出数据,并将二进制数据转储为本地文件

OleDbDataReader dT=null;

//中间有关数据库操作代码省略,am是OleDbCom-mand对象

3.3基于nopi组件实现报表输出

在实现将数据输入到excel模版过程中,需要解决读写ex-cel文件的问题。通过编程方式读写excel文件的方式有三种:

1)OleDb方式,将excel文件当作一个DataBase,而excel工作表作为一个table,是将excel的列名当作字段名,excel行当作table的一条记录,通过sql语言实现读写。用这种方法读取Excel速度还是非常的快的,但这种方式读取数据的时候不太灵活。

2)Com组件的方式读取Excel,这种方式需要先引用Micro-soft.Office.Interop.Excel。web方式实现时需要服务器安装excel和配置网络安全选项。可以非常灵活的读取Excel中的数据,基于单元格方式读取的,所以读写数据很慢,太大时不建议使用。

3)NPOI方式读取Excel,NPOI是POI项目的.NET版本。POI是一个Apache软件基金会开源的Java读写Excel、WORD等微软文档的项目。Nopi模式可以脱离excel读写excd文档,可适用于c/s和b/s模式。

本文就采用nopi模式实现excel中数据的写入。

转载请注明出处学文网 » 基于Excel实现动态报表

学习

空调全空气系统与节能措施

阅读(24)

【摘要】目前,全空气空调系统以其美观、安静、送风量和新风量充足以及卫生等诸多优势被广泛应用于商场、影剧院等大空间建筑内部。这种空调系统的空气处理方式及送风方式有多种类型,以往诸多研究中,多是针对系统的结构、空气处理过程及系统

学习

锂电池可能会爆炸

阅读(21)

本文为您介绍锂电池可能会爆炸,内容包括锂电池很容易爆炸吗官方回答,三元锂电池容易爆炸吗。今年7月2日,阿联酋航空从迪拜飞往北京的EK308航班飞机在飞行途中货舱起火,在乌鲁木齐地窝堡国际机场迫降。经调查,起火祸源确认为锂电池。锂电池

学习

神奇的收费亭

阅读(18)

本文为您介绍神奇的收费亭,内容包括神奇的收费亭全文在线阅读,神奇的收费亭全文。作者:[美]诺顿·贾斯特著,[美]朱尔斯·费弗绘,张加楠译出版社:南海出版社内容简介:一个乏味至极的下午,觉得一切都了无生趣的男孩米洛,在自己的房间发现了一个神

学习

浅谈英语背诵

阅读(20)

本文为您介绍浅谈英语背诵,内容包括英语阅读背诵,快速背诵英语课文。英语是一门交际语言,当学生在真实的语言环境中使用英语时会很容易地掌握。现实是中国学生很少有机会和说英语的外国人进行交流,所以用背诵英语的方法提高自己的英语水平

学习

我国劳动力成本上升的因素和影响

阅读(17)

一、我国劳动力成本进入快速上升期我国劳动力成本的上升,突出表现在工资水平的增长和社会保险费用增加等方面,而劳动生产率的增长则在一定程度上支撑了相对劳动力成本的竞争优势。(一)以职工工资为主体的直接劳动力成本快速增长直接成本的上

学习

实践与创新

阅读(17)

本文为您介绍实践与创新,内容包括实践创新的文章,实践是创新的基础文章。学习“三个代表”,目的何在?一句许,就是把我们的工作做好。而要做好工作,学习“三个代表”有两条基本的精神必须坚持,这就是实践和创新。实践第一,创新也就在其中了。实

学习

咸水脱盐机理与技术

阅读(30)

咸水或海水低温条件冷冻结冰时,盐分会被排除在冰晶以外,将冰晶洗涤、分离即可得到淡化的水,而冻融则利用“盐卤胞”自身的重力作用和环境温度变化产生的冰晶融冻冲洗作用把冰体内的卤水排挤出来,从而达到淡化的目的。早在1968年,Nebbia和Meno

学习

走向橄榄型社会

阅读(16)

2011年底的中央经济工作会议有关改善民生“要提高中等收入者比重”的新提法引发舆论热议,被视为中国未来30年加大力度向“民富”发展的标志。改革开放30多年来,中国经济保持持续高速增长,从一个人均不足300美元的低收入国家,发展到一个中等

学习

浅析人才流动现状及应对方法

阅读(26)

一个国家和一个地区想要发展,人才是必备的关键因素。全球一体化经济的发展,需要人才流动。但随着人才流动,产生的问题也日益突出,那就是人才过度地集中在主要的发达国家和发展中国家的发达地区,而相对落后的地区人才严重流失,从而使国家和国家

学习

百家姓――郑

阅读(17)

本文为您介绍百家姓――郑,内容包括百家姓头像大全,百家姓郑为什么排第七。派衍广文之裔,文子文孙,克绍薪传于次日家垂经学之遗,学诗学礼,无忘庭训于当年浙江台州郑氏宗祠联。上联“广文”,指唐代画家郑虔,曾官广文馆博士。下联“经学”,指东汉

学习

济安舒能应用于132例剖宫产术后切口的疗效观察

阅读(29)

本文为您介绍济安舒能应用于132例剖宫产术后切口的疗效观察,内容包括涂了济安舒能结疤了还需涂碘伏吗,济安舒能伤口护理膜怎么安装使用。【摘要】目的观察济安舒能对促进剖宫产术后切口愈合及减少并发症发生的效果。方法选取2009年行剖

学习

物象•心象

阅读(23)

本文为您介绍物象•心象,内容包括中国绘画的虚实艺术,一期一画中国美术史合集。史国强山东聊城人。1985年毕业于曲阜师范大学美术系油画专业,1997年毕业于中央美术学院第九届油画研修班,2008年--2009年师从于中央美术学院教授戴士和先生

学习

当前媒体策划新闻事件的常见类型

阅读(33)

近年来,我国媒体市场化运作程度不断提高,行业竞争日益加剧,公共关系的理念向传媒业全面渗透。在这个大背景下,新闻实践的发展可谓一日千里,媒体突破新闻报道者的角色,积极主动地策划新闻事件,使之进入报道序列,早已不是什么新鲜事。那些由媒体发

学习

社会转型期民众社会情感特点及影响因素

阅读(37)

社会情感是社会心态的重要组成部分,是民众参与社会生活的心灵窗口。调查显示,社会转型期,民众的社会情感总体上处于较为积极的状态,但也存在忽视安全隐患、获取支持感渠道较为单一、公平感不高的问题;另外,性别、年龄、婚姻状况、家庭社会经济

学习

公司财务报表分析

阅读(12)

本文为您介绍公司财务报表分析,内容包括公司财务报表分析大全,公司财务报表分析论文范文。本文通过选择某航空公司2013年的财务报表进行分析,并提出相应的建议,以期为我国航空公司财务管理水平的提升做出有益的探索。关键词:航空公司;财务报

学习

Excel2016中模拟运算表的应用

阅读(26)

Excel2016是微软办公软件OFFICE的重要组成部分,它具有强大的数据计算、处理和统计分析功能,并能辅助决策,广泛应用于财务、金融和管理等多个领域。模拟运算表是进行预测分析的一种工具,它可以用来预测公式中一个或多个数据变化时对计算结果

学习

创作动态 第13期

阅读(20)

田闻一擅长历史小说创作的四川作家田闻一,长期以来,在近百年巴蜀历史文化积淀中寻寻觅觅,从中挖掘出重大人物事件,并在丰沛的、广阔的历史背景上展开艺术想像,进行创作。从上个世纪九十年代以来,以近乎一年一部长篇小说的速度出版了十二部作品

学习

间接控股情况下财务报表合并问题探讨

阅读(28)

本文为您介绍间接控股情况下财务报表合并问题探讨,内容包括51%股权控股的公司合并财务报表吗,全资控股子公司合并财务报表。【摘要】母公司间接拥有被投资单位半数以上的表决权,应当将该被投资单位认定为子公司,纳入合并财务报表的合并范

学习

实验室内精密度中间度量数据的Excel快速分析

阅读(83)

本文为您介绍实验室内精密度中间度量数据的Excel快速分析,内容包括在excel中计算精密度,敏感度分析excel。摘要:目的建立用Excel对实验室内精密度中间度量数据快速进行统计分析的方法。方法利用Excel中数据的"联动"特点以及INDEX()、VLOOKU

学习

QQ概念版,动态操作新体验

阅读(395)

本文为您介绍QQ概念版,动态操作新体验,内容包括qq最新版有哪些新功能,qq最新版体验模式。QQ是我们使用最多的即时聊天工具之一,可使用的时间长了,老是面对一个界面总会感觉有些厌倦,如果操作界面能够动起来,那将是一种什么感受?QQ概念版

学习

赢得值法在工程成本(进度)动态控制中的应用

阅读(33)

本文为您介绍赢得值法在工程成本(进度)动态控制中的应用,内容包括赢得值法在工程的应用,进度偏差大于赢得值。摘要:成本(进度)作为工程项目管理中的一个关键性目标,贯穿于项目实施的全过程。阐述了工程成本(进度)动态控制的原理,介绍了赢得值法

学习

深圳市全程动态跟踪的土地供应计划实施评估机制探索

阅读(34)

本文为您介绍深圳市全程动态跟踪的土地供应计划实施评估机制探索,内容包括关于土地储备管理办法的评估报告,深圳市完善土地供应若干意见。摘要:土地供应计划是土地参与宏观调控的主要手段,为科学管理土地供应计划,开展科学的计划评估工作,通