怎样用VC实现对word文档的搜索
大致思路: 利用Office Automation; 可以参考Microsoft Office Development with Visual Studio或者VSTO(visual studio tools for office); MSDN上有具体的interface。
搜索的时候,才有Range的find,如果有结果,再判断selection的font是否是Arial-BoldMT。基本上,你如果能在Word里面用宏实现这个要求,那么外部程序的调用,只是一个automation的问题。
因此可以参考word VBA的控制部分。
vc调用Word写出怎么修改文件初始
vc6。
0Microsoft Office Word方法/步骤1打开vc6。0,新建一个MFC的基本对话框工程,我这里随便给它命名为1_12点击查看,建立类向导,点击Add Class,选择From a type library。
选择Microsoft Office安装目录下的MSWORD。 OLE文件(我的默认路径是C:\Program Files\Microsoft Office\OFFICE11\MSWORD。
OLE),打开。弹出一个增加类的界面,按shift全选(在程序设计的过程中,我们会知道哪些类是必要的,这里不管它),OK3在类视图区,会发现增加了很多类。
下面我们首先进行COM组建的初始化,在应用程序的InitInstance函数中增加以下代码:if(CoInitialize(NULL)!=S_OK){AfxMessageBox(“初始化COM组件失败!“);return FALSE;}4接下来自己新建一个类,用来封装操作Word的API函数。 点击插入,新建类,class type选择Generic Class(没有基类的),类名为CMeOffice。
5打开文件视图区,编译头文件MeOffice。h,在其中加入:#include“comdef。
h“#include“atlbase。 h“#include“msword。
h“和public:_Application m_wdApp; Documents m_wdDocs;_Document m_wdDoc;Selection m_wdSel;BOOL CreateApplication(); //创建ApplicationBOOL CreateDocument(); //创建Document文档BOOL WriteText(LPSTR szStr);//向文档中写入数据6编辑MeOffice。 cpp文件,加入自定义函数的实现(下面的代码的逻辑其实很好懂、看函数名就基本能明白函数的功能)://这个函数打开一个没有文档的应用程序界面BOOL CMeOffice::CreateApplication(){if(FALSE==m_wdApp。
CreateDispatch(“Word。Application“)){AfxMessageBox(“创建Application失败!“);return FALSE;}m_wdApp。
SetVisible(TRUE); //是否显示return TRUE;}BOOL CMeOffice::CreateDocument(){if(!m_wdApp。 m_lpDispatch){AfxMessageBox(“Application没有成功创建!“);return FALSE;}m_wdDocs。
AttachDispatch(m_wdApp。GetDocuments());if(!m_wdApp。
m_lpDispatch){AfxMessageBox(“AttachDispatch失败“);return FALSE;}CComVariant Template(““);CComVariant NewTemplate(false),DocumentType(0),Visible;m_wdDocs。 Add(&Template,&NewTemplate,&DocumentType,&Visible);//上面的代码足够新建一个文档m_wdDoc=m_wdApp。
GetActiveDocument();if(!m_wdDoc。m_lpDispatch){AfxMessageBox(“GetActiveDocument失败“);return FALSE;}m_wdSel=m_wdApp。
GetSelection();if(!m_wdSel。m_lpDispatch){AfxMessageBox(“GetSelection失败“);return FALSE;}return TRUE;}BOOL CMeOffice::WriteText(LPSTR szStr){m_wdSel。
TypeText(szStr);return TRUE;}7好了,类我们已经封装好了。现在我们可以调用封装的函数,实现操作word的功能。
在对话框类中新建一个成员变量 CMeOffice m_meOffice;在对话框初始化函数中加入下面的代码:m_meOffice。 CreateApplication();m_meOffice。
CreateDocument();m_meOffice。WriteText(“我是中国人民的儿子,我深深地爱着我的祖国!“);8运行程序,就自动新建了一个Application,里面有一个Document,上面显示“我是中国人民的儿子,我深深地爱着我的祖国!”。
如何打印一个word文档
你阅读MSDN(October2001)文章:Q184663 :UseMFCtoAutomateExcel&Create/FormataNewWorkbookQ186120 :CatchMicrosoftExcel97ApplicationEventsUsingVC++会对你有帮助。
如果要在你的程序中嵌入word等,可以使用htmlview实现。================事实上也就是:启动Word进程,然后调用Application.word的打印功能。
求助:c++如何调用word的查找功能
这是个比较典型的错误,在VC中调用Word的功能时大都是先录制一段Word的宏,再“翻译”成VC的函数。
但是Word的VBA中文字常量,像这里出现的wdFindContinue和wdReplaceAll,VC是不认的,必须用它们所表示的值传递给被调用的函数才能正常的工作。例子中的:COleVariant Wrap(wdFindContinue);COleVariant Replace(wdReplaceAll);改成:COleVariant Wrap((short)1); //wdFindContinue=1COleVariant Replace((short)2); //wdReplaceAll=2就对了。
类似于这样的常量,VBA里有很多,VC调用Word录制宏经常会出现,怎么能知道这此常量的值是多少呢?可以这样知道,在Word的宏里,加上下面语句:MsgBox wdFindContinueMsgBox wdReplaceAll运行一下该宏就可以知道了。上面的程序虽然能运行,但还有一个严重错误,Execute函数中的参数都是指针,所以这样调用是不对的:fndInDoc.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl);应改成这样的形式:fndInDoc.Execute(&FindText, &MatchCase, &MatchWholeWord, &MatchWildcards, &MatchSoundsLike, &MatchAllWordForms, &Forward, &Wrap, &format, &ReplaceWith, &Replace, &MatchKashida, &MatchDiacritics, &MatchAlefHamza, &MatchControl);。
在word文档里怎么查找关键字
以下是在word文档里查找关键字的方法:
所需工具:电脑。
1、在电脑桌面找到需要查找关键字的【文档】,并双击打开。
2、进入到【文档】后,在右上角找到选项【查找】,然后单击【查找】。
3、在【搜索框】中搜索需要搜索的关键字(这里以丁香为例),然后点击右侧的【放大镜】图标。
4、查找完成后,就可以看到文章中“丁香”的关键字被标黄了。