vb导出EXCEL设计打印控制属性方法汇总.docx

上传人:b****8 文档编号:9607364 上传时间:2023-05-20 格式:DOCX 页数:25 大小:74.70KB
下载 相关 举报
vb导出EXCEL设计打印控制属性方法汇总.docx_第1页
第1页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第2页
第2页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第3页
第3页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第4页
第4页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第5页
第5页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第6页
第6页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第7页
第7页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第8页
第8页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第9页
第9页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第10页
第10页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第11页
第11页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第12页
第12页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第13页
第13页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第14页
第14页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第15页
第15页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第16页
第16页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第17页
第17页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第18页
第18页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第19页
第19页 / 共25页
vb导出EXCEL设计打印控制属性方法汇总.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

vb导出EXCEL设计打印控制属性方法汇总.docx

《vb导出EXCEL设计打印控制属性方法汇总.docx》由会员分享,可在线阅读,更多相关《vb导出EXCEL设计打印控制属性方法汇总.docx(25页珍藏版)》请在冰点文库上搜索。

vb导出EXCEL设计打印控制属性方法汇总.docx

vb导出EXCEL设计打印控制属性方法汇总

基于VB和EXCEL的通用数据库报表设计

常熟高等专科学校钱忆平215500

摘要本文讨论了一种基于VB和EXCEL的通用数据库报表设计方案,并结合开发实例,给出了VB调用ACESS数据库实现通用数据库报表设计的程序实现方法。

关键词数据库报表VBEXCEL

1.引言

在各种数据库管理系统中,经常涉及到数据信息的分析、统计,最后将结果信息制作成报表汇总输出。

在用VisualBasic设计的数据库管理系统中,报表的设计方法通常有两种。

一是用VB自身的数据环境设计器(DataEnvironmentDesigner)和数据库报表设计器(ReportDesigner)实现;二是采用第三方的ActiveX报表控件,在此基础上直接进行设计。

但是,两种报表设计方法都存在缺点。

前者报表设计方法较为烦琐,在设计一些具有多项汇总的数据报表时,功能不足,报表的格式控制较为困难。

后者的报表设计方法较为简便,有多种报表格式可以套用,但用户制作报表的要求和格式各不相同,难以在报表的格式和功能上真正满足用户的要求。

所以,有必要寻找一种灵活方便的、能满足用户需求的、便于程序控制的报表设计方法,解决报表设计中存在的问题。

利用VB和EXCEL进行通用数据库报表设计是一种有效的解决方案。

2.通用数据库报表设计的一般方法

VB和EXCEL都是微软公司的典型产品,VB有较强的数据管理、控制和应用程序开发能力;EXCEL是一个电子表格软件,具有强大的数据处理和格式输出功能,能根据用户的要求灵活、方便地制作出各种格式的数据报表。

EXCEL有自身的对象库,能够在VB中直接调用。

通过在VB中建立EXCEL的APPLICATION对象及相关子对象,用VB对数据库数据进行管理和调用,实现数据库数据从VB到EXCEL的直接输出,然后由EXCEL对数据格式化,实现通用数据库报表输出功能。

通用数据库报表设计的流程框图如图1。

图1通用数据库报表设计流程图

3.实现步骤

(1)用ADO数据接口与数据库建立连接

众所周知,要实现对数据库数据的管理和调用,可以用多种不同的编程语言和不同的数据库管理系统完成,各种编程语言对数据库系统的数据调用方法也有多种,有DAO、RDO、ADO等。

ADO是一种高层次的、独立于编程语言的、访问所有种类企业信息的数据访问接口。

它基于通用对象模型(COM),简化了OLEDB的操作。

OLEDB程序中使用了大量的COM接口,而ADO封装了这些接口。

VB通过ADO接口可以很方便的与数据库数据通信,实现数据的管理和调用。

(2)建立报表数据源。

数据库的报表输出实质是按用户的要求,根据报表输出内容,实现对数据库数据的条件查询。

所以,需要通过ADO建立相应的记录集(RECORDSET)和命令(COMMAND)对象,结合SELECT-SQL语句,建立报表数据源。

(3)在EXCEL中建立报表格式样板文件

充分利用EXCEL强大的报表格式功能,按照报表样张的格式要求,在EXCEL中建立报表的样板文件,确定报表的纸张大小、页边距、报表的边框、填充、对齐方式及数据格式等相关内容。

这样既能灵活的满足用户对报表输出的格式要求,同时又极大的简化了报表设计的程序控制,减少了报表设计的编程工作量。

(4)建立APPLICATION对象,实现数据填充

在VB中建立EXCEL的APPLICATION对象及相关子对象,利用VB对APPLICATION对象进行编程控制,实现数据从数据源到EXCEL单元格的数据填充。

图2列出了在报表设计中EXCEL的部分主要对象模型,各对象功能如表1。

 

表1EXCEL主要对象功能表

对象

功能描述

APPLICATION

处于EXCEL对象层次结构的顶层,表示EXCEL自身的运行环境

WORKBOOK

表示一个EXCEL工作簿文件

WORKSHEET

表示一个EXCEL工作表

CELLS

表示一个EXCEL单元格

RANGE

表示一个或多个EXCEL单元格

(5)报表的预览和打印输出

报表的预览和打印,既可以由VB直接编程控制EXCEL在后台运行完成,也可以由用户EXCEL运行环境下参与控制,并对报表作适当修改和完善,最后完成打印输出。

4.主要程序的实现及报表设计实例

图3电磁参数统计报表格式图

以下结合“织机用2650电磁铁电磁参数测试系统”中的报表设计为例,用VB调用ACESS数据库,说明通用数据库报表设计的程序实现方法。

织机用2650电磁铁电磁参数管理系统是一个计算机在线测试和数据管理系统,实现对2650电磁铁的直流电压、直流电流、冷态电阻、绝缘电阻、通电磁场、剩磁等六个电磁参数及温度等非电量参数的在线测试和数据管理。

系统要求既能输出指定日期的各被测电磁铁的明细报表,也能输出指定日期的被测电磁铁的统计报表。

电磁铁参数统计报表的格式如图3。

测量数据存放在ACESS数据库MYDB1.MDB的PARAMETER2数据表中。

(1)与ACESS数据库建立连接

……

PublicSubMain()

Dimdb2asADODB.connection

Dimrs2_sqlAsString

DimcccAsString

Dimcnstring2AsString

Rs2_sql="select*fromparameter2whereleft(bianhao,8)="&Format(Date,"yyyymmdd")&"orderbybianhao"

ccc=App.Path

cnstring2=cn1+ccc+"\"+"mydb1.mdb"

’cn1为全局变量,已定义。

cn1="provider=microsoft.jet.oledb.4.0;’jetoledb:

databasepassword='123';datasource=

Setdb2=NewADODB.Connection

Db2.ConnectionString=cnstring1

Db2.Open

EndSub

……

(2)建立数据源

数据源的建立要根据报表的输出要求确定,可以用ADO的RECORDSET或COMMAND对象实现。

一个统计报表通常需要根据报表的统计要求,利用SELECT-SQL语句,从数据库中有条件的选择数据建立多个数据源,才能完成对报表的数据填充。

以图3中20型电磁铁各参数的平均值为例建立数据源。

……

Dimbenban_sqlAsString

DimriqiAsString

Dimrstemp2asadodb.recordset

riqi=CStr(Text1.Text)‘Text1为程序界面上设计的一个文本框,接收用户输入的日期

Ifriqi<>""Then

'统计20类型,全部质量,全部批号各参数的平均值

benban_sql="SELECTcount(bianhao)asbianhao_cou,avg(voltage)asvol_avg,avg(current_i)asi_avg,avg(resistance_l)asr_l_avg,avg(resistance_h)asr_h_avg,avg(b_l)asb_l_avg,avg(b_h)asb_h_avgFromparameter2"

benban_sql=benban_sql&"where"&"trim(type)='20'AndLeft(bianhao,8)="+Trim(riqi)

Setrstemp2=NewADODB.Recordset

Rstemp2.ActiveConnection=db2

Rstemp2.Source=benban_sql

Rstemp2.CursorType=adOpenStatic

Rstemp2.CursorLocation=adUseClient

Rstemp2.LockType=adLockOptimisticRstemp2.Open

……

endif

……

(3)建立报表格式样板文件

在EXCEL中建立报表的样板文件,工作薄文件为REPORT.XLS,工作表名为统计表。

电磁铁参数统计报表的样板格式如图3。

(4)建立EXCEL的APPLICATION及相关对象,实现数据填充

部分程序代码如下:

……

DimxlappAsExcel.Application

Dimstrsource,strdestinationAsString

strsource=App.Path+"\"+"report.xls"

strdestination=App.Path+"\"+"tempreport.xls"

FileCopystrsource,strdestination‘复制report.xls到tempreport.xls,避免直接对样板文件操作而破坏报表格式

Setxlapp=NewExcel.Application

Setxlapp=CreateObject("excel.application")‘建立excel的application对象

xlapp.Visible=True‘使excel的运行环境可见

Setxlbook=xlapp.Workbooks.Open(App.Path+"\"+"tempreport.xls",updatelinks)‘建立workbook对象,并打开tempreport.xls工作薄

Setxlsheet=xlbook.Worksheets

(2)‘建立worksheet对象,并设定tempreport.xls工作薄的第二张工作表为当前工作表

Ifrstemp1.Fields("bianhao_cou")<>0Then‘判断数据源是否有数据,然后对cells(单元格)对象进行数据填充(以20型电磁铁各参数的平均值为例进行填充)

Withxlsheet

Cells(1,1)=Trim(riqi)+"日电磁铁测量统计报表"

Cells(2,5)=Trim(riqi)

Cells(5,2)=rstemp1.Fields("vol_avg")

.Cells(6,2)=rstemp1.Fields("i_avg")

Cells(7,2)=rstemp1.Fields("r_l_avg")

Cells(8,2)=rstemp1.Fields("r_h_avg")

Cells(9,2)=rstemp1.Fields("b_l_avg")

Cells(10,2)=rstemp1.Fields("b_h_avg")

EndWith

EndIf

……

5.结束语

利用VB对EXCEL对象的直接编程控制,实现数据库数据到EXCEL的数据填充,找到了一种通用的数据库报表设计方法。

这种报表设计方法既能灵活的满足用户对报表格式和功能的要求,大大降低了编程人员在设计报表时对报表格式和功能的编程控制难度,增强了报表设计的灵活性和通用性。

上述报表设计方法和相关程序已成功应用于常熟纺织机械厂的织机用2650电磁铁电磁参数测试系统,得到的很好的控制和输出效果。

Delphi控制Excel2000

类 别:

COM&ActiveX

(一)使用动态创建的方法

首先创建Excel对象,使用ComObj:

varExcelApp:

Variant;

ExcelApp:

=CreateOleObject(''Excel.Application'');

1)显示当前窗口:

ExcelApp.Visible:

=True;

2)更改Excel标题栏:

ExcelApp.Caption:

=''应用程序调用MicrosoftExcel'';

3)添加新工作簿:

ExcelApp.WorkBooks.Add;

4)打开已存在的工作簿:

ExcelApp.WorkBooks.Open(''C:

\Excel\Demo.xls'');

5)设置第2个工作表为活动工作表:

ExcelApp.WorkSheets[2].Activate;

ExcelApp.WorksSheets[''Sheet2''].Activate;

6)给单元格赋值:

ExcelApp.Cells[1,4].Value:

=''第一行第四列'';

7)设置指定列的宽度(单位:

字符个数),以第一列为例:

ExcelApp.ActiveSheet.Columns[1].ColumnsWidth:

=5;

8)设置指定行的高度(单位:

磅)(1磅=0.035厘米),以第二行为例:

ExcelApp.ActiveSheet.Rows[2].RowHeight:

=1/0.035;//1厘米

9)在第8行之前插入分页符:

ExcelApp.WorkSheets[1].Rows[8].PageBreak:

=1;

10)在第8列之前删除分页符:

ExcelApp.ActiveSheet.Columns[4].PageBreak:

=0;

11)指定边框线宽度:

ExcelApp.ActiveSheet.Range[''B3:

D4''].Borders[2].Weight:

=3;

1-左2-右3-顶4-底5-斜(\)6-斜(/)

12)清除第一行第四列单元格公式:

ExcelApp.ActiveSheet.Cells[1,4].ClearContents;

13)设置第一行字体属性:

ExcelApp.ActiveSheet.Rows[1].Font.Name:

=''隶书'';

ExcelApp.ActiveSheet.Rows[1].Font.Color:

=clBlue;

ExcelApp.ActiveSheet.Rows[1].Font.Bold:

=True;

ExcelApp.ActiveSheet.Rows[1].Font.UnderLine:

=True;

14)进行页面设置:

a.页眉:

ExcelApp.ActiveSheet.PageSetup.CenterHeader:

=''报表演示'';

b.页脚:

ExcelApp.ActiveSheet.PageSetup.CenterFooter:

=''第&P页'';

c.页眉到顶端边距2cm:

ExcelApp.ActiveSheet.PageSetup.HeaderMargin:

=2/0.035;

d.页脚到底端边距3cm:

ExcelApp.ActiveSheet.PageSetup.HeaderMargin:

=3/0.035;

e.顶边距2cm:

ExcelApp.ActiveSheet.PageSetup.TopMargin:

=2/0.035;

f.底边距2cm:

ExcelApp.ActiveSheet.PageSetup.BottomMargin:

=2/0.035;

g.左边距2cm:

ExcelApp.ActiveSheet.PageSetup.LeftMargin:

=2/0.035;

h.右边距2cm:

ExcelApp.ActiveSheet.PageSetup.RightMargin:

=2/0.035;

i.页面水平居中:

ExcelApp.ActiveSheet.PageSetup.CenterHorizontally:

=2/0.035;

j.页面垂直居中:

ExcelApp.ActiveSheet.PageSetup.CenterVertically:

=2/0.035;

k.打印单元格网线:

ExcelApp.ActiveSheet.PageSetup.PrintGridLines:

=True;

15)拷贝操作:

a.拷贝整个工作表:

ExcelApp.ActiveSheet.Used.Range.Copy;

b.拷贝指定区域:

ExcelApp.ActiveSheet.Range[''A1:

E2''].Copy;

c.从A1位置开始粘贴:

ExcelApp.ActiveSheet.Range.[''A1''].PasteSpecial;

d.从文件尾部开始粘贴:

ExcelApp.ActiveSheet.Range.PasteSpecial;

16)插入一行或一列:

a.ExcelApp.ActiveSheet.Rows[2].Insert;

b.ExcelApp.ActiveSheet.Columns[1].Insert;

17)删除一行或一列:

a.ExcelApp.ActiveSheet.Rows[2].Delete;

b.ExcelApp.ActiveSheet.Columns[1].Delete;

18)打印预览工作表:

ExcelApp.ActiveSheet.PrintPreview;

19)打印输出工作表:

ExcelApp.ActiveSheet.PrintOut;

20)工作表保存:

ifnotExcelApp.ActiveWorkBook.Savedthen

ExcelApp.ActiveSheet.PrintPreview;

21)工作表另存为:

ExcelApp.SaveAs(''C:

\Excel\Demo1.xls'');

22)放弃存盘:

ExcelApp.ActiveWorkBook.Saved:

=True;

23)关闭工作簿:

ExcelApp.WorkBooks.Close;

24)退出Excel:

ExcelApp.Quit;

(二)使用Delphi控件方法

在Form中分别放入ExcelApplication,ExcelWorkbook和ExcelWorksheet。

1)打开Excel

ExcelApplication1.Connect;

2)显示当前窗口:

ExcelApplication1.Visible[0]:

=True;

3)更改Excel标题栏:

ExcelApplication1.Caption:

=''应用程序调用MicrosoftExcel'';

4)添加新工作簿:

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));

5)添加新工作表:

varTemp_Worksheet:

_WorkSheet;

begin

Temp_Worksheet:

=ExcelWorkbook1.

WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)as_WorkSheet;

ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);

End;

6)打开已存在的工作簿:

ExcelApplication1.Workbooks.Open(c:

\a.xls

EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)

7)设置第2个工作表为活动工作表:

ExcelApplication1.WorkSheets[2].Activate;或

ExcelApplication1.WorksSheets[''Sheet2''].Activate;

8)给单元格赋值:

ExcelApplication1.Cells[1,4].Value:

=''第一行第四列'';

9)设置指定列的宽度(单位:

字符个数),以第一列为例:

ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth:

=5;

10)设置指定行的高度(单位:

磅)(1磅=0.035厘米),以第二行为例:

ExcelApplication1.ActiveSheet.Rows[2].RowHeight:

=1/0.035;//1厘米

11)在第8行之前插入分页符:

ExcelApplication1.WorkSheets[1].Rows[8].PageBreak:

=1;

12)在第8列之前删除分页符:

ExcelApplication1.ActiveSheet.Columns[4].PageBreak:

=0;

13)指定边框线宽度:

ExcelApplication1.ActiveSheet.Range[''B3:

D4''].Borders[2].Weight:

=3;

1-左2-右3-顶4-底5-斜(\)6-斜(/)

14)清除第一行第四列单元格公式:

ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;

15)设置第一行字体属性:

ExcelApplication1.ActiveSheet.Rows[1].Font.Name:

=''隶书'';

ExcelApplication1.ActiveSheet.Rows[1].Font.Color:

=clBlue;

ExcelApplication1.ActiveSheet.Rows[1].Font.Bold:

=True;

ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine:

=True;

16)进行页面设置:

a.页眉:

ExcelApplication1.ActiveSheet.PageSetup.CenterHeader:

=''报表演示'';

b.页脚:

ExcelApplication1.ActiveSheet.PageSetup.CenterFooter:

=''第&P页'';

c.页眉到顶端边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:

=2/0.035;

d.页脚到底端边距3cm:

ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin:

=3/0.035;

e.顶边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.TopMargin:

=2/0.035;

f.底边距2cm:

ExcelApplication1.ActiveSheet.PageSetup.BottomMargin:

=2/0.035;

g.左边距2cm:

ExcelApplication1.ActiveShe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2