基于Excel实现动态报表.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于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;   cm.CommandType=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是

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档