ITPub博客

首页 > 应用开发 > IT综合 > 开发自己的Excell控件 (转)

开发自己的Excell控件 (转)

原创 IT综合 作者:a400 时间:2007-08-16 11:47:55 0 删除 编辑
开发自己的Excell控件 (转)[@more@]

  对于程序员特别是从事信息管理编程的程序员来说,报表打印是整个编程过程中最麻烦但又必须做的事情,我们常用的方法就是:
  一、将数据库记录导出到excell中;
  二、用CrystalReport或ActiveReport等报表工具生成报表文件然后再在程序中调用;
  三、直接打印窗体;

  对于第一种方法网上有许多文章介绍了怎样将数据表记录导入到Excell中并怎样控件Excell单元格式以便做出合适的报表,但是这种方法也有许多不便之处,一是用户的计算机上必须安装Excell,这显然不现实(当然盗版的另当别论),二是Excell自带的是ActiveX控件,虽然.NET仍支持ActiveX控件,但这与.Net的发展趋势显然是不相符的。
  对于第二种方法网上与CrystalReport或ActiveReport相关的资料很少,而且使用也相当复杂,怎么制作报表全凭程序员自己摸索。
  对于第三种方法除非想证明自己是菜鸟,否则没有人会使用。

  既然如此,我们可不可以利用.Net提供的强大功能自己开发类似于Excell的控件呢?其实要开发一个控件只要做两件事,其一是定义各种属性和方法,其二是根据各种属性绘制控件界面。
  下面我们来分析一下Excell的结构,Excell呈现给我们的是一张二维结构的表格,每一行相当于数据表的一个记录,每一列相当于数据表的字段。但Excell的每个单元又有许多的格式控件单元的呈现方式,这就是Excell与别的表格控件如DataGrid不相同的地方,那么如何实现每个单元都有不同的呈现方式呢?

  首先我们可以定义一个类名称假设为DataCell,这个类定义了各种属性比如:背景颜色、文本颜色、文本字体、对齐方式、文本折行、单元宽度、单元高度等等,然后我们定义一个Arraylist对象,名称假设为DataRow,一个DataRow加载适当数量的DataCell对象,这个DataRow对象就相当于Excell的一行记录。
  第二步我们再定义一个Arraylist对象,名称假设为DataTable,每个DataTable又加载一定数量的DataRow,那么这个DataTable对象其实就是一个有一定数量记录的二维表格了,只是这个表格的单元都有不同的格式。
  第三步就是绘制控件界面了,在这一步我们可以利用Graphics的DrawString、DrawLine、DrawRectangle、强大功能,根据DataCell对象提供的不同格式任意绘制控件界面了。
  笔者根据上面的思路编制了一个类似于Excell的控件,虽然功能不如Excell强大,但对付一般的报表是足足有余了,您不想试试吗?
  主页地址:Http://www.winfarsoft.com/
  下载地址:Http://wwww.winfarsoft.com/richcell.exeXML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10790690/viewspace-961293/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    826
  • 访问量
    304888