1.创建Excel对象 


   eole=CREATEOBJECT(′Excel.application′) 


   2.添加新工作簿 


   eole.Workbooks.add 


   3.设置第3个工作表为激活工作表 


   eole.Worksheets(″sheet3″).Activate 


   4.打开指定工作簿 


   eole.Workbooks.Open(″c:\temp\ll.xls″) 


   5.显示Excel窗口 


   eole.visible=.t. 


   6.更改Excel标题栏 


   eole.Caption=″VFP应用程序调用Microsoft Excel″ 


   7.给单元格赋值 


   eole.cells(1,4).value=XM(XM为数据库字段名) 


   8.设置指定列的宽度(单位:字符个数) 


   eole.ActiveSheet.Columns(1).ColumnWidth=5 


   9.设置指定行的高度(单位:磅) 


   eole.ActiveSheet.Rows(1).RowHeight=1/0.035 


   (设定行高为1厘米,1磅=0.035厘米) 


   10.在第18行之前插入分页符 


   eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1 


   11.在第4列之前删除分页符 


   eole.ActiveSheet.Columns(4).PageBreak=0 


   12.指定边框线宽度(Borders参数如下) 


   ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3 


   13.设置四个边框线条的类型 


   eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1 


   (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细 实线) 


   14.设置页眉 


   eole.ActiveSheet.PageSetup.CenterHeader=″报表1″ 


   15.设置页脚 


   eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″ 


   16.设置页眉到顶端边距为2厘米 


   eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035 


   17.设置页脚到底边距为3厘米 


   eole.ActiveSheet.PageSetup.FooterMargin=3/0.035 


   18.设置顶边距为2厘米 


   eole.ActiveSheet.PageSetup.TopMargin=2/0.035 


   19.设置底边距为4厘米 


   eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 


   20.设置左边距为2厘米 


   veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 


   21.设置右边距为2厘米 


   eole.ActiveSheet.PageSetup.RightMargin=2/0.035 


   22.设置页面水平居中 


   eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 


   23.设置页面垂直居中 


   eole.ActiveSheet.PageSetup.CenterVertically=.t. 


   24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11) 


   eole.ActiveSheet.PageSetup.PaperSize=1 


   25.打印单元格网线 


   eole.ActiveSheet.PageSetup.PrintGridlines=.t. 


   26.拷贝整个工作表 


   eole.ActiveSheet.UsedRange.Copy 


   27.拷贝指定区域 


   eole.ActiveSheet.Range(″A1:E2″).Copy 


   28.粘贴 


   eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial 


   29.在第2行之前插入一行 


   eole.ActiveSheet.Rows(2).Insert 


   30.在第2列之前插入一列 


   eole.ActiveSheet.Columns(2).Insert 


   31.设置字体 


   eole.ActiveSheet.Cells(2,1).Font.Name=″黑体″ 


   32.设置字体大小 


   eole.ActiveSheet.Cells(1,1).Font.Size=25 


   33.设置字体为斜体 


   eole.ActiveSheet.Cells(1,1).Font.Italic=.t. 


   34.设置整列字体为粗体 


   eole.ActiveSheet.Columns(1).Font.Bold=.t. 


   35.清除单元格公式 


   eole.ActiveSheet.Cells(1,4).ClearContents 


   36.打印预览工作表 


   eole.ActiveSheet.PrintPreview 


   37.打印输出工作表 


   eole.ActiveSheet.PrintOut 


   38.工作表另为 


   eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″) 


   39.放弃存盘 


   eole.ActiveWorkbook.saved=.t. 


   40.关闭工作簿 


   eole.Workbooks.close 


   41.退出Excel 


   eole.quit   

 ------------------------------------------------------------------------------------------------ 
◆访问EXCEL:ExcelSheet = GetObject('','Excel.Sheet') 
 返回结果为类,则成功。例: 
 ExcelSheet = GetObject('','Excel.Sheet') 
 If Type("ExcelSheet")#'O' THEN 
 =MessageBox( "访问Excel失败!请检查你的系统是否正确安装 Excel 软件!",48,"Excel不正常") 
 RETURN 
 ENDIF 

 ◆创建EXCEL实例:oExcel=CreateObject("Excel.Application") 
 该实例创建后,任何对EXCEL的操作都针对该实例进行,关闭EXCEL后应释放该实例变量:RELEASE oExcel 

 ◆打开已存在的EXCEL文件:oExcel.WorkBooks.Open("&lcFileName") &&lcFileName为Excel文件名 
 打开带有读写密码的文 件:oExcel.WorkBooks.Open("&lcFileName",,.F.,,"&R_Pwd","&W_Pwd") &&lcFileName-文件名,R_Pwd-读密码,W_Pwd-写密码,第二个参数表示读写方式:.T.只读,.F.读写 

 ◆设置新增工作薄的工作表数:oExcel.SheetsInNewWorkbook=1 &&新建工作表数量定为1个 

 ◆新增EXCEL工作薄:oExcel.WorkBooks.Add 

 ◆当前工作薄工作表总数:oExcel.WorkSheets.Count &&如:lnSheetCnt=oExcel.WorkSheets.count 

 ◆新增EXCEL工作表:oExcel.Sheets.Add &&不带参数为增加至当前工作表之前 
 在指定工作表后新建工作表:oExcel.Sheets.Add(,oExcel.Sheets(lnSheet),1,-4167) &&lnSheet为指定表号 
 在最后工作表后新建工作表:oExcel.Sheets.Add(,lnSheetsCnt,1,-4167) &&lnSheetCnt为工作表总数 

 ◆激活工作表:oExcel.WorkSheets("Sheet1").Activate &&激活工作表1 
 删除工作表:oExcel.WorkSheets("Sheet2").Delete &&删除工作表2 
 命名工作表:oExcel.WorkSheets("Sheet3").Name="新表" &&重命名工作表3 

 ◆使EXCEL可视:oExcel.Vsible=.T. 

 ◆Excel的窗口控制:oExcel.WindowState = -4140 &&最小化=-4140,最大化=-4137,还原=-4143 

 ◆后台操作报警关闭:oExcel.DisplayAlerts=.F. &&关闭(.F.) 打开(.T.) 

 ◆设置工作薄的标题:oExcel.Caption="Vfp控制Excel操作" 

 ◆当前工作薄换名存盘:oExcel.ActiveWorkBook.SaveAs("&lcFileName") 
 换名存为文本文件:oExcel.ActiveWorkBook.Saveas("&lcFileName",-4158) 

 ◆工作薄存盘:oExcel.WorkBooks.Save 

 ◆关闭工作薄:oExcel.WorkBooks.Close 

 ◆退出EXCEL:oExcel.Quit &&关闭EXCEL后通常应释放实例变量:Release oExcel 

 ◆打印当前工作簿:oExcel.ActiveWorkBook.PrintOut(1,oExcel.WorkSheets.count,1,.T.) 
 *默认直接打印整个工作簿:oExcel.ActiveWorkBook.PrintOut() 
 *参数1-数值:当前工作簿中进行打印的起始工作表号(默认1) 
 *参数2-数值:当前工作簿中进行打印的结束工作表号(默认最末) 
 *参数3-数值:打印份数(默认1) 
 *参数4-是预览打印还是直接打印:.T.-预览打印,.F.-直接打印(默认.F.) 

 ◆打印当前工作表:oExcel.ActiveSheet.PrintOut() &&共八个参数 
 *参数1-数值:起始页号,省略则默认为开始位置 
 *参数2-数值:终止页号,省略则默认为最后一页 
 *参数3-数值:打印份数,省略则默认为1份 
 *参数4-逻辑值:是否预览,省略则默认为直接打印(.F.) 
 *参数5-字符值:设置活动打印机名称,省略则为默认打印机 
 *参数6-逻辑值:是否输出到文件,省略则默认为否(.F.),若选.T.且参数8为空,则Excel提示输入要输出的文件名 
 *参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印 
 *参数8-字符值:当参数6为.T.时,设置要打印到的文件名 

 ◆预览当前工作表:oExcel.ActiveSheet.PrintPreview 

 ◆当前工作表页面设置:oExcel.ActiveSheet.PageSetup &&如: 
 With oExcel.ActiveSheet.PageSetup 
 .CenterFooter="第"+"&P"+"页 共"+"&N"+"页" &&页脚中间 
 .LeftFooter="制表人:"+AllTrim(lcUserName) &&页脚左边 
 .rightfooter="制表日期:"+Dtoc(Date()) &&页脚右边 
 .TopMargin=2.5/0.035 &&顶边距 
 .BottomMargin=2.5/0.035 &&底边距 
 .LeftMargin=1.4/0.035 &&左边距 
 .RightMargin=0.5/0.035 &&右边距 
 .FooterMargin=3.5/0.035 &&脚高距 
 .PrintTitleRows = "$1:$3" &&固定打印的顶端标题行(第1-3行) 
 .Orientation = 1 &&打印方向: 1为纵向,2为横向 
 .PaperSize=9 &&纸张类型: A4(注意:不同打印机与版本可能有不同) 
 .PrintQuality = 180 &&打印精度 
 EndWith 

 ◆从包含大量内含公式的EXCEL文件导至DBF中时,直接转换会出现致命错误,这时可选择将EXCEL另存为文本文件再导至DBF中可保数据不丢失: 
 oExcel.WorkBooks.Open('D:\123.xls') 
 oExcel.ActiveWorkBook.Saveas('D:\123.txt',-4158 ) &&注意参数-4158不能错 

 ◆若判断EXCEL或某个XLS文件是否已经打开(避免不可预知的错误发生): 
 LOCAL lOldSetOpt,mChanNum 
 lOldSetOpt = DDESetOption("SAFETY") 
 = DDESetOption("SAFETY",.F.) 
 mChanNum = DDEInitiate('Excel','SYSTEM') &&EXCEL是否已经打开 
 **mChanNum = DDEInitiate('Excel','&lcFileName') &&lcFileName某XLS文件名,如:D:\123.XLS 
 IF mChanNum <> -1 
 = messagebox('程序 EXCEL 已经打开,请先将其关闭!',64,'系统提示!') 
 ** = messagebox('文件 '+lcFileName+' 已经打开,请先将其关闭!',64,'系统提示!') 
 = DDETerminate(mChanNum) 
 = DDESetOption("SAFETY",lOldSetOpt) 
 RETURN 
 ENDIF  Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
 Set xlBook = xlApp.Workbooks.Open(App.Path &   "\文件名.xls") '打开已经存在的EXCEL工件簿文件
 xlApp.Visible = True '设置EXCEL对象可见(或不可见)
 Set xlSheet = xlBook.Worksheets("sheel1") '设置活动工作表,sheet1表示表名,可以使用字符型变量代替。
 xlSheet.Activate '激活工作表,让它处于前台活动中。
 xlBook.RunAutoMacros (xlAutoOpen) '运行自动开启宏Macro1(),在EXCEL中加入以下宏
 'Sub auto_open() '这是VBA中的自动打开时运行的宏
 ' 您要宏自动运行的程序,比如可以call其它的宏,这样VB在打开EXCEL时,使用上面的语句就可以先运行这个宏
 'End Sub
 xlSheet.Cells.Item(行数,列数) =值   '给EXCEL对象中的表的单元格附值。
 xlSheet.Rows("7:7").Select   '选定EXCEL表的第7行
 xlApp.Selection.Delete shift:=xlUp '删除选定的行
 xlSheet.Rows(7).Insert '在第7行处插入一行
 ActiveSheet.PageSetup.CenterHeader ="页眉内容" '给页眉附值
          xlSheet.Range("f7:h7").Select   '选定f7:h7之间的单元格,下面的程序是把它们合并。
          Application.CutCopyMode = False
        With xlApp.Selection
          .HorizontalAlignment = xlGeneral
          .VerticalAlignment = xlCenter
          .WrapText = False
          .Orientation = 0
          .AddIndent = False
          .IndentLevel = 0
          .ShrinkToFit = False
          .ReadingOrder = xlContext
          .MergeCells = True
        End With
 -------------------------------------------------------------------------------------------------------------刪除Excel中的全部宏 
 Private Function DelVba() 
 Application.DisplayAlerts = False 
 If ActiveWorkbook.VBProject.Protection = 0 And _ 
 ActiveWorkbook.ProtectStructure = False Then 

 '刪除程式碼 
 Dim OJB As Object 
 For Each OJB In ActiveWorkbook.VBProject.VBComponents 
 If OJB.Type <> 100 Then 
 ActiveWorkbook.VBProject.VBComponents.Remove OJB 
 Else 
 OJB.CodeModule.DeleteLines 1, OJB.CodeModule.CountOfLines 
 End If 
 Next 

 '刪除宏表 
 For Each Nx In ActiveWorkbook.Excel4MacroSheets 
 Nx.Delete 
 Next 
 ActiveWorkbook.Close SaveChanges:=True 
 Else 
 Dim FileName As String, FuName As String 
 fname = ActiveWorkbook.Name 
 FuName = ActiveWorkbook.FullName 
 Sheets.Copy 
 Workbooks(fname).Close SaveChanges:=False 

 '刪除程式碼 
 For Each OJB In ActiveWorkbook.VBProject.VBComponents 
 If OJB.Type <> 100 Then 
 ActiveWorkbook.VBProject.VBComponents.Remove OJB 
 Else 
 OJB.CodeModule.DeleteLines 1, OJB.CodeModule.CountOfLines 
 End If 
 Next 

 '刪除宏表 
 For Each Nx In ActiveWorkbook.Excel4MacroSheets 
 Nx.Delete 
 Next 

 ActiveWorkbook.Close SaveChanges:=True, FileName:=FuName 
 End If 
 Application.DisplayAlerts = True 
 End Function 
 -------------------------------------------------------------------------------------------------------------引用EXCEL 
 引用Microsoft Visual Basic for Applications Extensibility 
 Private Sub Command1_Click() 
 Dim xl As Excel.Application 
 Dim bk As Workbook 
 Dim xlcomp As VBComponent 
 Set xl = New Excel.Application 
 Set bk = xl.Workbooks.Add 
 On Error Resume Next 
 Set xlcomp = xl.VBE.VBProjects(1).VBComponents.Add(vbext_ct_StdModule) 
 If Err.Number <> 0 Then MsgBox Err.Description & Chr(10) & "请设置EXCEL中的宏安全性---可靠来源": Exit Sub 
 xlcomp.CodeModule.AddFromString "sub gg()" & Chr(10) _ 
 & "msgbox " & """" & "OK" & """" & Chr(10) _ 
 & "end sub" 
 xl.Visible = True 
 xl.Run "gg" 
 End Sub 
 以上是exel,下面是word哈哈,这个问题我自己解决了,我这个打开别人的文件并且加入了宏,实现痕迹保留,注意这个技术不许用来开发宏病毒!! 
 Private Sub Command1_Click() 
 Dim wd As Word.Application 
 Dim mydoc As Document 
 Dim xlcomp As VBComponent 
 Set wd = New Word.Application 

 Set mydoc = wd.Documents.Open("D:\Documents and Settings\pw-panyg\My Documents\f.doc") 
 On Error Resume Next 
 Set xlcomp = wd.VBE.VBProjects(1).VBComponents.Add(vbext_ct_StdModule) 
 If Err.Number <> 0 Then MsgBox Err.Description & Chr(10) & "请设置word中的宏安全性---可靠来源": Exit Sub 
 xlcomp.CodeModule.AddFromString "sub MySub()" & Chr(10) _ 
 & "With ActiveDocument" & Chr(10) _ 
 & ".TrackRevisions = True" & Chr(10) _ 
 & ".PrintRevisions = False" & Chr(10) _ 
 & "ShowRevisions = True" & Chr(10) _ 
 & "End With" & Chr(10) _ 
 & "UpdateStylesOnOpen = True" & Chr(10) _ 
 & "end sub" 


 wd.Visible = True 
 wd.Run "MySub"   
 End Sub  ---------------------------------------------------------------------------------------------------------------------
Sub SetExcelVBA()
 '练习
 '功能:改变Excel的安全级别
 '使用:Wscript,FileSystemObject,创建txt文件,注册表操作,VBS文件自我删除,改变Excel文件读写属性等

'By Keanjeason@Officefans.net Dim WSH As Object, ret As String, regStr As String
 Dim strFullname As String, strVBS As String
 Dim tf, fso, RetVal
 '本程序仅适用于Excel 2003( 11.0),如果当前版本不是2003则退出
 If Application.Version <> "11.0" Then MsgBox "本代码仅在 Excel 2003 下可使用! ", vbOKOnly + vbCritical, "Keanjeason": Exit Sub
 strFullname = ThisWorkbook.FullName '取得当前工作薄的全名
 strVBS = Replace(UCase(strFullname), ".XLS", ".vbs") 'temp文件VBS的文件名
 Set WSH = CreateObject("Wscript.Shell") '创建Wscript对象
 Err.Clear
 On Error Resume Next
 regStr = "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\Level" '注册表中Excel vba安全级别位置
 ret = WSH.RegRead(regStr) '读取当前安全级别
 If Err.Number <> 0 Then
       '判断读取是否成功
       MsgBox "从注册表读取当前Excel VBA安全级别设置失败,本程序将退出! ", vbOKOnly + vbCritical, "Keanjeason"
       Exit Sub
 Else
    '如果当前Excel VBA安全级别不为“低”,则设置为“低”,值1-4分别对应:低,中,高,非常高
    If Val(ret) <> 1 Then ret = WSH.RegWrite(regStr, "1", "REG_DWORD")
 End If
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set tf = fso.CreateTextFile(strVBS, True) '创建temp文件VBS文件
 With tf
      '写入VBS文件内容
      .WriteLine ("Dim oExcel,fso,delme")
      .WriteLine ("Set fso = CreateObject(""Scripting.FileSystemObject"")")
      .WriteLine ("Set oExcel = CreateObject(""excel.application"")")
      .WriteLine ("oExcel.Workbooks.Open " & Chr(34) & strFullname & Chr(34))
      .WriteLine ("oExcel.Visible=true")
      .WriteLine ("Set oExcel = Nothing")
      .WriteLine ("delme = fso.DeleteFile(" & Chr(34) & strVBS & Chr(34) & ")")
      .Close
 End With
 With ThisWorkbook
      '将当前文件属性设置为“只读”,以方便重新打开
      .ChangeFileAccess Mode:=xlReadOnly
      .Saved = True
 End With
 RetVal = WSH.Run(Chr(34) & strVBS & Chr(34), 1, True) '运行刚刚创建的VBS文件,新启动一个Excel程序
 Application.Quit '退出当前Excel
 Set WSH = Nothing
 Set fso = Nothing
 End Sub