資源描述:
《vb6.0調用excel制作任意表格》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、VB6.0調用Excel制作任意表格在VB中制作報表一般來講有三種方法:1、直接使用VB6.0中自帶的DataReport來做,這種方法有很大的局限性,對于比較規(guī)則的報表,但對于比較復雜的報表,比如說一張報表,上部分是人員的工資,下部分是人員的各日的考勤,使用這種方法就無能為力。2、使用直接的打印方法,即Printer.print,這種方法直接向打印機打印,就象過去使用Foxpro似的,需要進行打印機定位,并且在Windows下,不同的字符數(shù)字所占的寬度也不相同,所以這種方法使用起來非常麻煩。3、使
2、用微軟的Excel。本文重點討論用Excel來制作報表所涉及的問題。我們用Excel做報表時,不僅是將所要的內容填到Excel的工作表中,而且還需要填寫公式、定義合適的格式(格線、字體、對齊)等。Excel的每張工作表是由若干行、若干列構成的,行列的交叉形成的小格稱作單元格。我們正好可以用這些現(xiàn)成的單元格來做我們的報表的相應的格。為了程序簡單,可以將報表的模板做好,如表頭,相應的行高、列寬、字體、對齊調整好(事實上,這些也可以通過程序來實現(xiàn),只是麻煩點。),然后利用VB程序來操縱Excel。這里我們
3、以SQLSERVER7.0為后臺數(shù)據(jù)。首先定義好需要的變量,在VB6.0的菜單"工程引用"中確保MicrosoftExcel8.0ObjectLibrary(在Excel2000中,此處為Excel9.0)復選框選中。再向Excel工作表中填入數(shù)據(jù):DimVBExcelAsExcel.ApplicationDimxlbookAsExcel.Workbook定義Excel工作簿對象DimxlsheetAsExcel.Worksheet定義Excel工作表對象DimrssalaryAsNewADODB
4、.Recordset定義記錄集rssalary.OpenSQLStrsalary,CNstring,adOpenStatic,adLockReadOnlyrssalary為已計算好的工資數(shù)據(jù)記錄集。SQLStrsalary是SQL語句(如select*FROMSALARY)。Cnstring是連接字符串(如Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=DBname;DataSo
5、urce=servername)。SetVBExcel=createObject("excel.application")VBExcel.Visible=True根據(jù)操作人員是否需要見到Excel此處可設為TRUE或FALSESetxlbook=VBExcel.Workbooks.Open(ExcelFile)ExcelFile為事先設計好的Excel模板文件(包括路徑)Setxlsheet=xlbook.Worksheets("salary")Salary為Excel模板工作表的名字xlsheet
6、.Activate下面是向單元格中填寫數(shù)據(jù)(以一個簡單的工資打印為例):xh=1Row=6從第6行開始是工資數(shù)據(jù),1-5行為工資單表頭SumRow=RowSumRow用來存放合計的起始行DoWhileNotrssalary.EOFCol=1xlsheet.Cells(Row,Col).Value=xhCol=Col+1xlsheet.Cells(Row,Col).Value=rssalary("name")Col=Col+1xlsheet.Cells(Row,Col).Value=Str(rssal
7、ary("jngz").Value)Col=Col+1xlsheet.Cells(Row,Col).Value=Str(rssalary("jbdx").Value)Col=Col+1xlsheet.Cells(Row,Col).Value=Str(rssalary("gwgz").Value)Col=Col+1xlsheet.Cells(Row,Col).Value=Str(rssalary("zygz").Value)Col=Col+1xlsheet.Cells(Row,Col).Value=S
8、tr(rssalary("jfgz").Value)Col=Col+1xlsheet.Cells(Row,Col).Value=Str(rssalary("yfgz").Value)xh=xh+1Row=Row+1rssalary.MoveNextLoop以上可將各人的工資項打印出來,下面是合計(僅以一列的合計為例,填寫公式):Col=1xlsheet.Cells(Row,Col).Value=""Col=Col+1xlsheet.Cells(Row,Col).Val