oForm = Createobject('form1') oForm.Show() Read Events Define Class form1 As Form Top = 0 Left = 0 Height = 470 Width = 740 DoCreate = .T. Caption = "HTML sample" Name = "Form1" * This is IE control - you'd use webbrowser4 from gallery instead * just because it already has some checks, extra pem. ie: wouldn't need readystate part * for the sake of keeping code short here I directly use olecontrol itself Add Object htmlviewer As OleControl With ; Top = 12, ; Left = 12, ; Height = 396, ; Width = 708, ; Visible = .T., ; Name = "HTMLViewer", ; OleClass = 'Shell.Explorer' Add Object cmdExcel As CommandButton With ; Height = 25, ; Left = 12, ; Top = 432, ; Width = 60 Procedure Init lcXLSFile = 'c:\downloads\mertest.xls' With Thisform.htmlviewer .Navigate2('file://'+lcXLSFile) Do While .ReadyState # 4 && Wait for ready state Enddo Endwith Endproc Procedure cmdExcel.Click oXLS = Thisform.htmlviewer.Object.Document oExcel = oXLS.Application With oExcel.ActiveWorkbook .ActiveSheet.Range('E1:E7').Value = 'sheet1' .WorkSheets(.WorkSheets.Count).Range('E1:E7').Value = 'LastSheet' .Save() .WorkSheets(.WorkSheets.Count).Activate Endwith Endproc Procedure QueryUnload Clear Events Endproc EnddefineCetin