回 帖 发 新 帖 刷新版面

主题:[讨论]也谈VFP中EXCEL的应用问题

通常使用“XLApp.WorkBooks.OPEN()”代码可以打开一个既有的EXCEL文件,然而,用这种方式所打开的EXCEL文件需要使用绝对路径,山人近期经过反复测试,发现以下代码可以打开一个相对路径中的EXCEL文件。

LOCAL PTH
PTH = CURDIR()
XLApp = CREATEOBJECT('YsFrmBase')
XLApp.ADDOBJECT('OleObject','OleExcelObject')
XLApp.OLEOBJECT.VISIBLE = .T.
XLApp.OLEOBJECT.DOVERB(1)
READ EVENTS 

DEFINE CLASS OleExcelObject AS OLEControl
     OLECLASS = 'Excel.Sheet'
     DOCUMENTFILE = PTH + '甲供清单.XLS'
ENDDEFINE

利用上述代码打开一个既有EXCEL文件后,自然减少了我们许多编程的烦劳,因为格式问题可以直接在EXCEL文件中设定,在VFP中所要做的就是把相关数据直接转换到EXCEL文件中就OK了。

回复列表 (共2个回复)

沙发

可以用GetFile()交互选择.

cPath=getfile('xls')
IF EMPTY(cPath)
   RETURN
ENDIF
AddOleNew=CREATEOBJECT('EXCEL.APPLICATION')
AddOleNew.Workbooks.Open(cPath)
AddOleNew.VISIBLE=.t.
INKEY(3)
AddOleNew.Workbooks.close
AddOleNew.quit

板凳

兄台惠赐的代码尚需好好研究。

抱歉,山人上述的语句仍旧达不到如期效果,不过下述代码倒是可以,只是系统还是只认“C”盘下的相对路径。

Sele Gjgkls
Rec=Reccount()
SELECT * From Gjgkls INTO ARRAY ArrData

DOCUMENTFILE = CURDIR() + '工程项目信息汇总表.XLS'
XlApp=CreateObject("Excel.Application")
XLApp.Visible=.T.
XlApp.WorkBooks.Open(DOCUMENTFILE)
XLSheet = XLApp.ActiveSheet
FOR I = 1 to Rec
     FOR J = 1 to 8
          XLSheet.Cells(I+2,J).Value = ArrData(I,J)
     ENDFOR
ENDFOR

我来回复

您尚未登录,请登录后再回复。点此登录或注册