麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

用VB控制EXCEL生成報表

2019-11-18 17:37:33
字體:
來源:轉載
供稿:網友
做為一種簡捷、系統的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
   "標題  EndWith

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产毛片网站 | 久久国产精品二国产精品中国洋人 | 黄色片免费在线播放 | 夜夜看| 黄色影院在线 | 一区二区三级视频 | 精品一区二区三区四区在线 | 精品中文字幕久久久久四十五十骆 | 久久久精品99 | 一级大片久久 | 日本中文字幕电影在线观看 | 一级一级一级一级毛片 | 午夜精品福利视频 | 欧美一级二级毛片视频 | 成人福利在线免费观看 | 一本色道精品久久一区二区三区 | 成人免费福利 | 国产二区三区视频 | 成人精品视频在线 | 美女很黄很黄免费的 | 49vv看片免费| 亚洲视频观看 | 毛毛片在线看 | 国产亚洲综合精品 | 国产伦精品一区二区三区 | 久色精品视频 | 亚洲国产网站 | 亚洲精品3 | 国产午夜精品一区二区三区免费 | 羞羞的小视频 | 日本免费一区二区三区四区 | 性欧美日本 | 黄色网址在线免费 | 成品片a免人视频 | 粉嫩粉嫩一区二区三区在线播放 | 久久精品在线免费观看 | 免费观看黄色一级视频 | 国产免费美女 | 欧美一极视频 | 欧美特级一级毛片 | vidz 98hd|