編程中主要使用了CreateObject()函數(shù),它可從類(lèi)定義或支持OLE自動(dòng)化的應(yīng)用程序中創(chuàng)建對(duì)象,并將對(duì)象引用賦給變量或數(shù)組元素;若使用用戶自定義類(lèi),則在創(chuàng)建對(duì)象之前,用戶自定義類(lèi)必須先用 Define Class 來(lái)創(chuàng)建,或者用 SET Classlib 打開(kāi)的 .VCX 可視類(lèi)庫(kù)中的類(lèi)。
假定在一個(gè)VFP項(xiàng)目中有數(shù)據(jù)表:table1.dbf(其中總分暫為0):
我們希望在VFP的這個(gè)項(xiàng)目運(yùn)行時(shí),調(diào)用Excel來(lái)處理這個(gè)數(shù)據(jù)表,并將處理結(jié)果存盤(pán)。下面的程序excel01.prg實(shí)現(xiàn)了這些要求,程序中用CreateObject()函數(shù)啟動(dòng)Excel,并新建一個(gè)Excel工作簿,然后打開(kāi)數(shù)據(jù)表table1.dbf,取得該表的記錄數(shù),并將表table1.dbf的記錄數(shù)據(jù)逐條送到這個(gè)工作簿的工作表Sheet1中(同時(shí)計(jì)算各記錄的總分),稍加修改(例如設(shè)置字體、字號(hào),畫(huà)表格線等)作出這個(gè)數(shù)據(jù)表的報(bào)表,并用temp.xls文件名存盤(pán)。excel01.prg源程序如下:
SET DEFAULT TO d:\myvfp\kwsjk
Clear
oleApp = CREATEOBJECT(″Excel.Application″)
oleApp.Visible=.T. && 顯示 Excel。
oleApp.Workbooks.Add
** 設(shè)置單元格的值(報(bào)表標(biāo)題):
oleApp.Cells(1,1).Value=″貴州大學(xué)計(jì)算機(jī)軟件與理論研究所″
oleApp.Cells(2,1).Value=″學(xué)生成績(jī)表″
**
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ù)庫(kù)″
oleApp.Cells(4,5).Value=″英語(yǔ)″
oleApp.Cells(4,6).Value=″人工智能″
oleApp.Cells(4,7).Value=″總分″
** 打開(kāi)數(shù)據(jù)表,取得該表的記錄數(shù)
use table1.dbf
jl=RECCOUNT()-1
** 將數(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ù)庫(kù)
oleApp.Cells(5+i,5).Value=table1.英語(yǔ)
oleApp.Cells(5+i,6).Value=table1.人工智能
** 計(jì)算總分:
oleApp.Cells(5+i,7).Value=table1.數(shù)學(xué)+table1.網(wǎng)絡(luò)+table1.數(shù)據(jù)庫(kù)+
table1.英語(yǔ)+table1.人工智能
ENDFOR
OleApp.ActiveWorkbook.SaveAs(″D:\myvfp\kwsjk\temp.XLS″)
假定在一個(gè)VFP項(xiàng)目中有數(shù)據(jù)表:table1.dbf(其中總分暫為0):
我們希望在VFP的這個(gè)項(xiàng)目運(yùn)行時(shí),調(diào)用Excel來(lái)處理這個(gè)數(shù)據(jù)表,并將處理結(jié)果存盤(pán)。下面的程序excel01.prg實(shí)現(xiàn)了這些要求,程序中用CreateObject()函數(shù)啟動(dòng)Excel,并新建一個(gè)Excel工作簿,然后打開(kāi)數(shù)據(jù)表table1.dbf,取得該表的記錄數(shù),并將表table1.dbf的記錄數(shù)據(jù)逐條送到這個(gè)工作簿的工作表Sheet1中(同時(shí)計(jì)算各記錄的總分),稍加修改(例如設(shè)置字體、字號(hào),畫(huà)表格線等)作出這個(gè)數(shù)據(jù)表的報(bào)表,并用temp.xls文件名存盤(pán)。excel01.prg源程序如下:
SET DEFAULT TO d:\myvfp\kwsjk
Clear
oleApp = CREATEOBJECT(″Excel.Application″)
oleApp.Visible=.T. && 顯示 Excel。
oleApp.Workbooks.Add
** 設(shè)置單元格的值(報(bào)表標(biāo)題):
oleApp.Cells(1,1).Value=″貴州大學(xué)計(jì)算機(jī)軟件與理論研究所″
oleApp.Cells(2,1).Value=″學(xué)生成績(jī)表″
**
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ù)庫(kù)″
oleApp.Cells(4,5).Value=″英語(yǔ)″
oleApp.Cells(4,6).Value=″人工智能″
oleApp.Cells(4,7).Value=″總分″
** 打開(kāi)數(shù)據(jù)表,取得該表的記錄數(shù)
use table1.dbf
jl=RECCOUNT()-1
** 將數(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ù)庫(kù)
oleApp.Cells(5+i,5).Value=table1.英語(yǔ)
oleApp.Cells(5+i,6).Value=table1.人工智能
** 計(jì)算總分:
oleApp.Cells(5+i,7).Value=table1.數(shù)學(xué)+table1.網(wǎng)絡(luò)+table1.數(shù)據(jù)庫(kù)+
table1.英語(yǔ)+table1.人工智能
ENDFOR
OleApp.ActiveWorkbook.SaveAs(″D:\myvfp\kwsjk\temp.XLS″)