主题:VFP的GRID特别显示和操作WORD-EXCEL示例
曾有编程爱好者多次求我帮做Word模板,填写资料。当时也找不到资料。只告诉他
要写资料的那一页用EXCEL,因EXCEL的参考资料多。后见他在多个论坛求助,未见解决。
刚好闲点,花点时间研究了一下WORD,终于知道怎样如控制EXCEL一样来控制WORD。
写成例子贴出来与大家共享,都有两方法,一是直接用代码编程创建文档,另是在WORD或
EXCEL中作好模板,用模板创建,添写资料。我中意后者。
另附 GRID 模仿DELPHI的显示
总结以下几点,就可更加发挥:
一、要实现的目的,先在WORD或EXCEL中录制宏。然后根据宏来修改做成VFP的代码。
二、对象的属性不同。
a、WORD ,
1、 凡有selection的为应用程序属性
OleWord=CREATEOBJECT('word.application') &&创建word目标
OleWord.Selection
**** Word多数用它**********
OleWord.quit &&退出word
2、OleWord.Documents
OleWord.Documents.add() &&增加新的word文档,有路径文件名是以它作模板打开
OleWord.Documents.open("D:\test.doc") &&打开指定的文件
OleWord.Documents.close(.F.) &&关闭所有打开的文档不保存,不要.F.,调出对话框
3、页面设置OleWord.ActiveDocument.PageSetup
4、OleWord.ActiveDocument
OleWord.ActiveDocument.Save &&保存
OleWord.ActiveDocument.SaveAs("D:\test.doc") &&最简单的另存
OleWord.ActiveDocument.close &&关闭当前word文档
b、EXCEL
1、凡有selection的为应用程序属性
XLApp=CREATEOBJECT('Excel.application')
XLApp.Selection
XLApp.quit &&退出Excel
2、XLApp.WorkBooks
XLApp.WorkBooks.Add( ) &&增加新的EXCEL,加有路径文件名是以它作模板打开
XLApp.Workbooks.Open("D:\test.xls") && 打开指定工作簿
XLApp.Workbooks.close(.F.) &&关闭所有打开的工作簿不保存,不要.F.,调出对话框
3、页面设置 XLApp.ActiveSheet.PageSetup
4、XLApp.ActiveSheet
********Excel多数用它与Word不同**********
5、XLApp.ActiveWorkbook
XLApp.ActiveWorkbook.Save &&保存
XLApp.ActiveWorkbook.SaveAs("D:\ABC\22.xls") &&另存为
XLApp.ActiveWorkbook.close &&关闭当前工作簿
三、WORD/EXCEL宏与VFP表示方法不同
a、WORD打开
OleWord.Documents.open("D:\test.doc",.F.,.F.,.F.,'456','123',.F.,'','',.F.) &&根据宏函数改,与保存不同方式,456为打开密码,123为只读密码
*宏函数 Documents.Open FileName:="temp.doc", ConfirmConversions:=False, ReadOnly:= _
* False, AddToRecentFiles:=False, PasswordDocument:="456", PasswordTemplate _
* :="123", Revert:=False, WritePasswordDocument:="123", WritePasswordTemplate _
* :="", Format:=wdOpenFormatAuto
b、EXCEL只读保护
XLApp.ActiveSheet.protect('123') &&用123密码锁起只读
XLApp.ActiveSheet.unprotect('123') &&用123密码解锁
*宏函数(用123密码只读锁) ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
* 用123密码解锁 ActiveSheet.Unprotect
徐 军 xj@meyerdyeing.com
2005/11/06
示例:
http://upload.programfan.com/upfile/20051122194626.rar
要写资料的那一页用EXCEL,因EXCEL的参考资料多。后见他在多个论坛求助,未见解决。
刚好闲点,花点时间研究了一下WORD,终于知道怎样如控制EXCEL一样来控制WORD。
写成例子贴出来与大家共享,都有两方法,一是直接用代码编程创建文档,另是在WORD或
EXCEL中作好模板,用模板创建,添写资料。我中意后者。
另附 GRID 模仿DELPHI的显示
总结以下几点,就可更加发挥:
一、要实现的目的,先在WORD或EXCEL中录制宏。然后根据宏来修改做成VFP的代码。
二、对象的属性不同。
a、WORD ,
1、 凡有selection的为应用程序属性
OleWord=CREATEOBJECT('word.application') &&创建word目标
OleWord.Selection
**** Word多数用它**********
OleWord.quit &&退出word
2、OleWord.Documents
OleWord.Documents.add() &&增加新的word文档,有路径文件名是以它作模板打开
OleWord.Documents.open("D:\test.doc") &&打开指定的文件
OleWord.Documents.close(.F.) &&关闭所有打开的文档不保存,不要.F.,调出对话框
3、页面设置OleWord.ActiveDocument.PageSetup
4、OleWord.ActiveDocument
OleWord.ActiveDocument.Save &&保存
OleWord.ActiveDocument.SaveAs("D:\test.doc") &&最简单的另存
OleWord.ActiveDocument.close &&关闭当前word文档
b、EXCEL
1、凡有selection的为应用程序属性
XLApp=CREATEOBJECT('Excel.application')
XLApp.Selection
XLApp.quit &&退出Excel
2、XLApp.WorkBooks
XLApp.WorkBooks.Add( ) &&增加新的EXCEL,加有路径文件名是以它作模板打开
XLApp.Workbooks.Open("D:\test.xls") && 打开指定工作簿
XLApp.Workbooks.close(.F.) &&关闭所有打开的工作簿不保存,不要.F.,调出对话框
3、页面设置 XLApp.ActiveSheet.PageSetup
4、XLApp.ActiveSheet
********Excel多数用它与Word不同**********
5、XLApp.ActiveWorkbook
XLApp.ActiveWorkbook.Save &&保存
XLApp.ActiveWorkbook.SaveAs("D:\ABC\22.xls") &&另存为
XLApp.ActiveWorkbook.close &&关闭当前工作簿
三、WORD/EXCEL宏与VFP表示方法不同
a、WORD打开
OleWord.Documents.open("D:\test.doc",.F.,.F.,.F.,'456','123',.F.,'','',.F.) &&根据宏函数改,与保存不同方式,456为打开密码,123为只读密码
*宏函数 Documents.Open FileName:="temp.doc", ConfirmConversions:=False, ReadOnly:= _
* False, AddToRecentFiles:=False, PasswordDocument:="456", PasswordTemplate _
* :="123", Revert:=False, WritePasswordDocument:="123", WritePasswordTemplate _
* :="", Format:=wdOpenFormatAuto
b、EXCEL只读保护
XLApp.ActiveSheet.protect('123') &&用123密码锁起只读
XLApp.ActiveSheet.unprotect('123') &&用123密码解锁
*宏函数(用123密码只读锁) ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
* 用123密码解锁 ActiveSheet.Unprotect
徐 军 xj@meyerdyeing.com
2005/11/06
示例:
http://upload.programfan.com/upfile/20051122194626.rar