最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
开发自己的Excell控件
时间:2022-07-02 11:54:45 编辑:袖梨 来源:一聚教程网
对于程序员特别是从事信息管理编程的程序员来说,报表打印是整个编程过程中最麻烦但又必须做的事情,我们常用的方法就是:
一、将数据库记录导出到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中;
二、用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对象提供的不同格式任意绘制控件界面了。
相关文章
- 《无限暖暖》天星之羽获得位置介绍 12-20
- 《流放之路2》重铸台解锁方法介绍 12-20
- 《无限暖暖》瞄准那个亮亮的成就怎么做 12-20
- 《无限暖暖》魔气怪终结者完成方法 12-20
- 《无限暖暖》曙光毛团获得位置介绍 12-20
- 《无限暖暖》日光果获得位置介绍 12-20