基于ASP.NET 的Excel 数据报表导出方法
2016-03-07黄兴荣
黄兴荣
摘要:探讨了基于ASP.NET环境,实现Excel数据报表的几种导出方法,重点阐述了其中一种方法的实现原理和实现过程,并将其应用于项目开发中。使用Excel数据报表的导出方法,具有适应性强、高效率、低开发成本的特点。
关键词:ASP.NET;Excel;数据报表;数据导出
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)35-0039-02
Abstract:Based on ASP.NET environment, several export methods for realizing Excel Data Report, and the realization principle and realization process of a method is described in this paper. Using the method for realizing Excel Data Report, has the characteristics of strong adaptability, high efficiency, low development cost.
Key words:ASP.NET; Excel; data report; data export
通常,在基于B/S架构的管理信息系统的开发中,用户要求对数据实现统计和汇总的功能。而通过Web方式提供优质、高效的报表输出和打印,是业界公认较难实现的技术问题。在B/S架构系统中,可以通过浏览器自带的页面打印功能,来实现数据报表的输出、打印。但是,自带的页面打印功能无法满足较为复杂的数据导出的要求。复杂的数据导出功能,一方面,可以通过第三方的控件来实现,但是功能复杂,价格昂贵;另一方面,也可以通过导出为Excel的数据报表来实现。在轻量级的系统开发中,与使用第三方控件方法相比较而言,基于ASP.NET的Excel数据报表导出方法,具有适应性较强,控制性较好,开发成本低的优势。在本文中,将讨论在ASP.NET环境中,实现导出Excel数据报表的方法。
1 三种基于ASP.NET的Excel数据报表导出方法的比较
在ASP.NET的环境中,主要有三种的Excel数据报表导出方法[1-2]。分别为:引用COM组件;使用VbScript生成Excel文件;将数据生成HTML代码,保存为Excel文件。
方法一、引用COM组件。此方法,直接通过接口调用,可以实现较为复杂的报表,但要求在服务器端安装Excel,并设置一定的访问权限。且由于使用了非托管的COM对象,易造成Excel进程无法释放。在B/S环境中,并不推荐使用方法一来实现Excel数据报表的导出。
方法二、使用VbScript生成Excel文件。此方法使用VbScript脚本语言来实现数据导出功能,但较为繁琐,难以维护,并必须在客户端的IE浏览器中进行相关设置。方法二,具有效率高的优势。
方法三、将数据生成HTML代码,保存为Excel文件。此方法首先对浏览器的输出类型进行设置,然后调用自定义的过程,将数据以字符串流的形式进行输出。方法三,表现形式较为简单,易于实现,效率较高。
综上所述,以上三种方法各有优劣,可以充分满足在中小型系统的导出Excel数据报表功能要求。在系统开发中,根据具体功能要求,进行选用。在建筑起重机械监督管理系统的开发中,用户要求在实现导出Excel数据报表时,方便简单,效率高;同时,在此系统中,要实现的报表功能较多,也对于维护提出较高的要求。所以,在系统开发中,项目团队采用方法三来实现Excel数据报表导出功能。在下文中,重点讨论方法三的实现原理和实现过程。
2 导出Excel数据报表实现原理
3 导出Excel数据报表实现过程
在建筑起重机械监督管理系统中,统计产权备案信息的页面设计如图1所示,在此页面中,添加了一个DridView控件和一个Button控件。DridView控件用来显示查询产权备案信息的数据,每列表示一个字段,而每行表示一条记录。Button控件的Click()事件,用来实现Excel数据报表的导出功能。Excel数据报表的导出结果如图2所示。
4 结束语
本文重点阐述了一种在ASP.NET中导出Excel数据报表的方法,并讨论其它方法的优缺点。虽然上述方法导出Excel数据报表的功能有限,但具有适应性较强、效率较高、开发成本较低的优势,对于解决Web报表导出问题具有一定的借鉴意义。
参考文献:
[1] 王兴. ASP.NET 中Excel文档生成技术研究[J]. 软件导刊, 2010,9(4):130-131.
[2] 李菲菲. 一种基于ASP.NET 中Excel报表导入与导出方法[J]. 软件导刊, 2012,11(8):136-137.