假定在一個(gè)VFP項(xiàng)目中有數(shù)據(jù)表:table1.dbf(其中總分暫為0):
我們希望在VFP的這個(gè)項(xiàng)目運(yùn)行時(shí),,調(diào)用Excel來處理這個(gè)數(shù)據(jù)表,并將處理結(jié)果存盤,。下面的程序excel01.prg實(shí)現(xiàn)了這些要求,,程序中用CreateObject()函數(shù)啟動(dòng)Excel,并新建一個(gè)Excel工作簿,,然后打開數(shù)據(jù)表table1.dbf,,取得該表的記錄數(shù),并將表table1.dbf的記錄數(shù)據(jù)逐條送到這個(gè)工作簿的工作表Sheet1中(同時(shí)計(jì)算各記錄的總分),,稍加修改(例如設(shè)置字體,、字號(hào),畫表格線等)作出這個(gè)數(shù)據(jù)表的報(bào)表,,并用temp.xls文件名存盤,。excel01.prg源程序如下:
SET DEFAULT TO d:\myvfp\kwsjk
Clear
oleApp = CreateOBJECT(″Excel.Application″)
oleApp.Visible=.T. && 顯示 Excel。
oleApp.Workbooks.Add
?。?nbsp;設(shè)置單元格的值(報(bào)表標(biāo)題):
oleApp.Cells(1,1).Value=″貴州大學(xué)計(jì)算機(jī)軟件與理論研究所″
oleApp.Cells(2,1).Value=″學(xué)生成績表″
?。?
oleApp.Cells(4,1).Value=″姓名″
oleApp.Cells(4,2).Value=″數(shù)學(xué)″
oleApp.Cells(4,3).Value=″網(wǎng)絡(luò)″
oleApp.Cells(4,4).Value=″數(shù)據(jù)庫″
oleApp.Cells(4,5).Value=″英語″
oleApp.Cells(4,6).Value=″人工智能″
oleApp.Cells(4,7).Value=″總分″
** 打開數(shù)據(jù)表,,取得該表的記錄數(shù)
use table1.dbf
jl=RECCOUNT()-1
?。?nbsp;將數(shù)據(jù)表中的記錄數(shù)據(jù)放入Excel工作簿的單元格中
FOR i=0 TO jl
go i+1 && 第i+1條記錄
oleApp.Cells(5+i,1).Value=table1.姓名
oleApp.Cells(5+i,2).Value=table1.數(shù)學(xué)
oleApp.Cells(5+i,3).Value=table1.網(wǎng)絡(luò)
oleApp.Cells(5+i,4).Value=table1.數(shù)據(jù)庫
oleApp.Cells(5+i,5).Value=table1.英語
oleApp.Cells(5+i,6).Value=table1.人工智能
** 計(jì)算總分:
oleApp.Cells(5+i,7).Value=table1.數(shù)學(xué)+table1.網(wǎng)絡(luò)+table1.數(shù)據(jù)庫+ table1.英語+table1.人工智能
ENDFOR
OleApp.ActiveWorkbook.SaveAs(″D:\myvfp\kwsjk\temp.XLS″) |