?? 將vfp數據轉給excel.txt
字號:
將Visual FoxPro的數據轉給Excel
中國科學院廣州能源研究所
張偉銘
---- 用Visual FoxPro編程,很多時候需要將用戶需要的數據有條件地轉出給其他軟件處理。Excel是大家熟悉的軟件,這里,本人總結了一種轉換方法,供大家參考。
---- 1、 轉化的基本條件
---- 對需要轉出數據的主數據表,需要提供另外一個輔助表,此表需要與主表同時打開,表的結構如下:(在此命名為d_gwt.dbf)
字段名 類型 寬度 備注
E_NAME 字符型 20 記錄主表的字段名
D_FORT 邏輯型 1 備份選擇項目(可以不要)
S_FORT 邏輯型 1 選擇項目
---- 2、 建立一個如下表單以供主表單調用,以便選擇輸出不同的字段的內容:
表單的Init event:
replace all d_gwt.d_fort with d_gwt.s_fort
goto top
Grid1的Init event:
this.column2.check1.caption=""
&&取消選擇符號后面的文字
"取消”的click event:
release thisform
"全部不選”的click event:
nrecno=recno()
replace all d_fort with .F.
goto nrecno
thisform.refresh
"全部選中”的click event:
nrecno=recno()
replace all d_fort with .T.
goto nrecno
thisform.refresh
"確認”的click event:
replace all s_fort with d_fort
release thisform
---- 3、 記錄的篩選:
---- 請使用Visual FoxPro自帶的過濾器選擇記錄,當然也可以自己另外設計程序對主數據表進行篩選,這里只是使用filter()的返回值。
---- 4、 轉化數據給Excel:
---- 打開建立一個命令控件,使其click event如下:
LOCAL i, j, xlsheet, XLApp, tmpsheet,
nrecno,gwtfilter, ntorf
SELE gwt &&在此使用gwt.dbf為主數據表
gwtfilter=filter()
count to nrecno
SELE D_GWT
COUNT TO NTORF FOR S_fort
IF NTORF=0
WAIT "沒有選擇任何項目的數據
給Excel處理..." windows
Sele gwt
Return
ENDIF
SELECT e_name from alias() where
s_fort INTO ARRAY arrTestData1
SET FILTER TO s_fort=.T.
selectfield=""
GOTO TOP
DO WHILE .NOT. EOF()
selectfield=selectfield+E_NAME+','
SKIP
ENDDO
selectfield=SUBSTR(selectfield,1,len(selectfield)-1)
SET FILTER TO
SELE GWT
DIMENSION arrtestdata(ntorf,nrecno)
IF Empty(GWTFILTER)
SELECT &selectfield from alias()
INTO ARRAY arrTestData
ELSE
SELECT &selectfield from alias()
WHERE &gwtfilter INTO ARRAY arrTestData
ENDIF
WAIT WINDOW "Starting Excel..." NOWAIT
tmpsheet = GetObject('','excel.sheet')
XLApp = tmpsheet.application
XLApp.Visible = .t.
XLApp.WorkBooks.Add()
XLSheet = XLApp.ActiveSheet
**轉換第一行的數據,也即是數據表的字段
FOR I=1 TO NTORF
XLSheet.Cells(1,I).Value = arrTestdata1(1,I)
ENDFOR
**轉換數據內容
FOR i = 1 to nrecno
FOR j = 1 to ntorf
XLSheet.Cells(i+1,j).Value = arrTestData(i,j)
ENDFOR
?? chr(7)
ENDFOR
WAIT WINDOW "數據轉化成功..." TIMEOUT 2
--------------------------------------------------------------------------------
中國計算機世界出版服務公司版權所有
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -