vfp调用word OR excel.doc_第1页
vfp调用word OR excel.doc_第2页
vfp调用word OR excel.doc_第3页
vfp调用word OR excel.doc_第4页
vfp调用word OR excel.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vfp调用word OR excel(一) 1.VFP全面控制EXCLVFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:1创建Excel对象eole=CREATEOBJECT(Excel.application)2添加新工作簿eole.Workbooks.add3设置第3个工作表为激活工作表eole.Worksheets(sheet3).Activate4打开指定工作簿eole.Workbooks.Open(c:templl.xls)5显示Excel窗口eole.visible=.t.6更改Excel标题栏eole.Caption=VFP应用程序调用Microsoft Excel7给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10在第18行之前插入分页符eole.Worksheets(Sheet1).Rows(18).PageBreak=111在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(b3:d3).Borders(2).Weight=313设置四个边框线条的类型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=报表115设置页脚eole.ActiveSheet.PageSetup.CenterFooter=第P页16设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.03519设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.03520设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.03521设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t.23设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t.24设置页面纸张大小(1窄行8511 39宽行1411)eole.ActiveSheet.PageSetup.PaperSize=125打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26拷贝整个工作表eole.ActiveSheet.UsedRange.Copy27拷贝指定区域eole.ActiveSheet.Range(A1:E2).Copy28粘贴eole.WorkSheet(Sheet2).Range(A1).PasteSpecial29在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31设置字体eole.ActiveSheet.Cells(2,1).Font.Name=黑体32设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=2533设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.35清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36打印预览工作表eole.ActiveSheet.PrintPreview37打印输出工作表eole.ActiveSheet.PrintOut38工作表另为eole.ActiveWorkbook.SaveAs(c:temp22.xls)39放弃存盘eole.ActiveWorkbook.saved=.t.40关闭工作簿eole.Workbooks.close41退出Exceleole.quit2.VFP数据导出至EXCEL问题这样设计:oexl=createobject(excel.application)oexl.workbooks.addoexl.visible=.t.oexl.workbooks(1).activateoexl.cells(1,1).value=名称1oexl.cells(1,2).value=名称2oexl.cells(1,3).value=名称33. 如何在VFP5.0中利用EXCEL的功能做报表在VFP中调用Excel要利用Automation。所有Automation的步骤都一样,先建立对象,然后利用该对象实现VBA语句。如果你对VBA不熟悉,也可以利用Excel的录制宏的功能得到相应的VBA语句。下面就是一段打印预览报表的VFP程序: objExcel = CreateObject(Excel.Application) objExcel.Visible = 1 objExcel.Workbooks.Open(E:JXCDOSFILEDBF.DBF) objExcel.ActiveSheet.PageSetup.PrintGridlines = 1 objExcel.ActiveWindow.SelectedSheets.PrintPreview4.如何使用已有的Word模版新建一个文档可以借助OLE Automation来做这件事。如果你使用CreateObject(Word.Application)建立对象。建立新文档的VBA语句为:Documents.Add Template:=G:Microsoft OfficeOfficeHTML.DOT, NewTemplate :=False其中Template是你要引用的模板。 如果你使用CreateObject(Word.Basic)建立对象。建立新文档的Word Basic语句为:FileNew(G:Microsoft OfficeOfficeHTML.DOT)下面是一个简单的VFP例子: objWord=CreateObject(Word.Application) objWord.Visible=1ObjWord.Documents.Add(G:Microsoft OfficeTemplates中文信函和传真典雅型信函.dot, 0)5. VFP中使用CreatObject实现对Word文件进行操作的方法public oleApp,fDocoleApp=CreateObject(Word.Application) &创建应用程序对象oleappoleApp.Visible=.t. &使Word文档可见fDoc=oleApp.Documents.Add &创建文档对象Fdoc*在下一语句中将欢迎光临Word世界!换成你需要的内容送到Word文档,如果有多行,可重复此语句.oleApp.Selection.TypeText( 欢迎光临Word世界!)fDoc.SaveAs(c:Test.doc) &文件自动存盘为c:test.docoleApp.Quit &退出word 6.在vfp打开F:我的文档vfp表格控件.doc的命令怎么写?RELEASE loWordPUBLIC loWordloWord = CREATEOBJECT(word.basic)*loWord.filenewdefaultloWord.filenew(F:我的文档vfp表格控件.doc)*- 最大化 WordloWord.appshow7. 在vfp创建F:我的文档vfp表格控件.doc的命令怎么写?VFP中使用CreatObject实现对Word文件进行操作的方法如下: oleapp=createobject(word.application) &创建应用程序对象oleapp oleapp.visible=.t. &使Word文档可见 fdoc=oleapp.Documents.Add &创建文档对象Fdoc oleapp.Selection.TypeText( 欢迎光临Word世界!) &在此语句可将欢迎光临Word世界!换成你需要的内容送到Word文档,如果有多行,可重复此语句. fdoc.saveas(c:test.doc) &文件自动存盘为c:test.doc oleapp.quit &退出word8.轻松建立属于自己的 Word 模板我们知道,当每次进入Word时,系统都会自动新建一个空白文档,并分配一个名称为“文档1”的文档。而我们在实际应用中,常用到的不是这种默认设置。如学校办公室经常上传、下达文件,每次将文件内容录完以后,都要进行字体、字号、纸型等多项设置。是否有一种方法来简化文档的设置工作,使每次新建空白文档时直接打开这一设置好格式的文档呢?答案当然是肯定的,我们可以用Word的模板功能来实现。任何Word文档都是以模板为基础进行创建的。模板决定了文档的基本结构和设置的样式,模板就是包含有段落结构、字体样式和页面布局等元素的样式。我们在新建一文档时实际上是打开了一个名为“normal.doc”的文件。该文件的位置一般位于:C:WindowsApplication DataMicrosoftTemplates(也可通过开始菜单查找一个位置)文件夹下,具体操作方法如下:1. 打开C:WindowsApplication DataMicrosoftTemplates文件夹下的“normal.doc”文档,将各项设置改成你所需的样式;2. 点击文件下拉菜单中的“另存为”,在“另存为”对话框中输入要保存的文件名,保存类型选择“文档模板”,单击“确定”;3. 最后关闭该文档窗口。以后每打开这一文件时,它的默认格式就是你在第1步设置的格式了。编辑提示:1此法对原文件normaldoc没有影响;2此法对WPS也适用。只是“normalwps”位于c wps2000template目录下。怎么样?感觉是不是很方便,那就赶快试试吧,也可以根据需要多建几个模板哟!9.数据库的内容转到EXECL文件中COPY TO c:你的表.xls TYPE XL5 eole=CREATEOBJECT(Excel.application) & 创建Excel对象eole.Workbooks.Open(c:你的表.xls) & 打开指定工作簿eole.visible=.t. & 显示Excel窗口10. 从VFP中导出数据的几种方法!答:当VFP处理好数据后,这时你可以用多种方法将这些数据导出,以便被其它应用程序(如Excel等)所用。下面向你简单介绍几种导出数据的方法:1.用“导出数据”对话框。你可以从VFP主菜单中选择“文件/导出”打开“导出”对话框,在该对话框中的“来源”框中输入表名(c:vfpstudents.dbf),在“类型”中指定要导出数据的类型(Microsoft Excel),在“到”框中输入导出的路径和文件名(C:excelaa.xls),然后按“确定”即可。这时你如果查看command窗口,可发现以下代码:COPY TO C:excelaa.XLS TYPE XL52.用COPY TO命令。COPY TO命令的工作对象是VFP中的表,它要依据“TYPE”项才知道要产生哪一类导出文件。对于上面的导出过程,可用以下方法实现:USE studentsCOPY TO C:excelaa.XLS TYPE XL512.在VFP6中,如何调用已经存在的WORD文件?oW = CREATEOBJECT(word.basic)with oW .Apprestore() .Appmaximize() .fileopen(路径+文件名.扩展名) ENDWITH13.打开word文件的控件?用RUN /N3 C:WORD.EXE 文档路径C:WORD.EXE是我自己写的,你用时换成WORD的真正路径就行了!比如用WORD 打开SD.DOC 就写RUN /N3 C:WORD.EXE C:SD.DOC另:TXLS_EOLE = CREATEOBJECT(word.application)TXLS_EOLE.Documents.Open(文件名.doc)TXLS_EOLE.Visible=.t.注意:别忘了关闭哦TXLS_EOLE.Documents.close &关闭文档TXLS_EOLE.quit &关闭wordRELEASE TXLS_EOLE &释放对象再者:fw=alltrim(this.value) if file(&fw) *documents.open filename(&fw) wrdapp = createobject(word.application) wrdapp.visible=.t. *wrdapp.documents.add wrdapp.documents.open(alltrim(this.value)else messagebox(fw+chr(13)+文件不存在,请确认,0+16,文件路径出错) RETURN(.F.)ENDIF14.在表单中创建一个编辑框,用来显示WORD文档!做一个按扭,在CLICK中写:THISFORM.EDIT1.value=FILETOSTR(GETFILE(DOC)这个不也行,而且还简单15.强烈建议: 直接使用ole可以在表单中打开word,建议不使用这种办法,改为利用api用windows默认的程序打开word,数据库只存储word文档所在的位置和名字。16在VFP中调用其他的程序 在VFP中我们可以用run来调用由VFP自身生成的.exe文件。命令格式:run c:.*.exe 当调用非VFP自身生成的.exe文件时,需要加上绝对路径和参数。一般来说,用VFP运行非VFP自身生成的可执行文件时,会有一个黑色的窗口显示一下。可以通过加上/n来隐藏这个窗口。例如运行Windows下的扫雷游戏,命令格式如下:RUN/n C:WindowsWinmine.exe 下面运行一个更复杂一点的程序。调用word打开c:下的一个名为mlx.doc的word文件,命令格式如下:run /n3 C:Program FilesMicrosoft OfficeOfficeWinword.exe C:mlx.doc参数:n 在运行时隐藏VFP的黑色窗口。 3 表示以最大化的方式运行程序。1正常方式、2最小化方式、3最大化方式 在这种情况下,可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。比如,在上例中,我们可能无法确定用户的word到底安装在什么地方,如果用户把word安装到了别的地方,上述命令便会出错。再如,一个.gif文件,有的用户喜欢用ACD See来打开,有的用户喜欢用IE来打开,有的用户喜欢用豪杰来打开, 为了解决这种情况我们可以调用Windows的文件关连来打开文件。即所有的文件都用系统默认的程序来打开。这就要调用Windows的Win32 API函数。调用方式如下:DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,;STRING lpszOP, ;STRING lpszFile, ;STRING lpszParams, ;STRING lpszDir, ;INTEGER fsshowcmdDECLARE INTEGER GetDesktopWindow IN win32apiHWND = GetDesktopWindow()lpszOP = open* 指定要打开的文件名lpszFile =c:mlx.doclpszParams = lpszDir = c:tempfsshowcmd = 1* 执行ShellExecute命令LNRETURN = ShellExecute(HWND,lpszOP,lpszFile,lpszParams,lpszDir,fsshowcmd) 可以用任意的文件名来替换上文中的 c:mlx.doc 。如果指定的文件名Windows无法找到相应的关连程序,这时程序将不会做出反应。有关的参数可以自行偿试进行修改,以达到最佳效果。(以上的“”也可以写成“” 王卫东试验过)(紧接着看下面的ShellExecute使用详解)17.调用ShellExecute()函数打开网页有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(Notepad.exe Readme.txt, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi.pas单元:uses ShellAPI; (1).标准用法 ShellExecute函数原型及参数含义如下: function ShellExecute( HWND; Operation, FileName, Parameters,Directory; ShowCmd)hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。 Operation:用于指定要进行的操作。最常用的动词是 Open, 其它可用的动词是 edit,print,explore 和 properties.其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认操作“open”。 FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。 Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。 Directory:用于指定默认目录。 ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。 若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。 上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。 (2).特殊用法 (已在金乡县宅基地管理系统的“欢迎表单”这使用)在label属性中定义mousepointer=99&自定义鼠标指针(这里是手型)在label的init事件中添加如下代码:this.MOuseicon=HAND.CUR &设定当鼠标移动到该标签时鼠标会变成一只小手。要有一个小手的.cur文件,我是在QQ中找到的。 * * * 通过调用win32API函数实现打开网页代码 * * * 声明ShellExecute函数 DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,; STRING lpszOP, ; STRING lpszFile, ; STRING lpszParams, ; STRING lpszDir, ; INTEGER fsshowcmd* 声明GetDesktopWindow函数,该函数激活Windows桌面DECLARE INTEGER GetDesktopWindow IN win32api* 指定从Windows桌面上运行ShellExecute函数HWND=GetDesktopWindow()lpszOP=* 指定ShellExecute操作的文件为lpszFile=http/:/u/1279340340lpszParams=* 指定ShellExecute的缺省目录为C:lpszDir=C:fsshowcmd=1* 执行ShellExecute命令*LNRETURN=ShellExecute(HWND,lpszOP,lpszFile,lpszParams,lp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论