欢迎光临
我们一直在努力

用vb控制excel生成报表_visualbasic教程

建站超值云服务器,限时71元/月

做为一种简捷、系统的Windows应用程序开发工具,VisualBasic5具有强大的数据处理功能,提供了多种数据访问方法,可以方便地存取MicrosoftSQLServer、Oracle、XBase等多种数据库,被广泛应用于建立各种信息管理系统。但是,VB缺乏足够的、符合中文习惯的数据表格输出功能,虽然使用CrystalReport控件及CrystalReports程序可以输出报表,但操作起来很麻烦,中文处理能力也不理想。Excel作为Micorsoft公司的表格处理软件在表格方面有着强大的功能,我们可用VB5编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel97的控制句柄,从而直接控制Excel97的一系列操作。

下面给出一个实例:

首先建立一个窗体(FORM1)在窗体中加入一个DATA控件和一按钮,

引用MicrosoftExcel类型库:

从”工程”菜单中选择”引用”栏;

选择MicrosoftExcel8.0ObjectLibrary;

选择”确定”。

在FORM的LOAD事件中加入:
  Data1.DatabaseName=数据库名称
  Data1.RecordSource=表名
  Data1.Refresh

在按钮的CLICK事件中加入
  DimIrow,IcolAsInteger
  DimIrowcount,IcolcountAsInteger
  DimFieldlen()”存字段长度值
  DimxlAppAsExcel.Application
  DimxlBookAsExcel.Workbook
  DimxlSheetAsExcel.Worksheet

  SetxlApp=CreateObject(“Excel.Application”)
  SetxlBook=xlApp.Workbooks.Add
  SetxlSheet=xlBook.Worksheets(1)

  WithData1.Recordset
  .MoveLast

  If.RecordCount<1Then
    MsgBox(“Error没有记录!”)
    ExitSub
  EndIf

  Irowcount=.RecordCount”记录总数
  Icolcount=.Fields.Count”字段总数

  ReDimFieldlen(Icolcount)
  .MoveFirst

8

  ForIrow=1ToIrowcount 1
   ForIcol=1ToIcolcount
  SelectCaseIrow
  Case1″在Excel中的第一行加标题
  xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1).Name
  Case2″将数组FIELDLEN()存为第一条记录的字段长

  IfIsNull(.Fields(Icol-1))=TrueThen
    Fieldlen(Icol)=LenB(.Fields(Icol-1).Name)
     ”如果字段值为NULL,则将数组Filelen(Icol)的值设为标题名的宽度
  Else
    Fieldlen(Icol)=LenB(.Fields(Icol-1))
  EndIf

  xlSheet.Columns(Icol).ColumnWidth=Fieldlen(Icol)
   ”Excel列宽等于字段长
  xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1)
   ”向Excel的CellS中写入字段值
  CaseElse
  Fieldlen1=LenB(.Fields(Icol-1))

  IfFieldlen(Icol)<Fieldlen1Then
  xlSheet.Columns(Icol).ColumnWidth=Fieldlen1
   ”表格列宽等于较长字段长
  Fieldlen(Icol)=Fieldlen1
   ”数组Fieldlen(Icol)中存放最大字段长度值
  Else
   xlSheet.Columns(Icol).ColumnWidth=Fieldlen(Icol)
  EndIf

  xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1)
  EndSelect
  Next
  IfIrow<>1Then
  IfNot.EOFThen.MoveNext
  EndIf
  Next
  WithxlSheet
  .Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Name=”黑体”
   ”设标题为黑体字
  .Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Bold=True
   ”标题字体加粗
  .Range(.Cells(1,1),.Cells(Irow,Icol-1)).Borders.LineStyle=xlContinuous
   ”设表格边框样式
  EndWith
  xlApp.Visible=True”显示表格
  xlBook.Save”保存
  SetxlApp=Nothing”交还控制给Excel
  EndWith

本程序在中文Windows98、中文VB5下通过。->

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用vb控制excel生成报表_visualbasic教程
分享到: 更多 (0)