1.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,上面显示“我是中国人民的儿子,我深深地爱着我的祖国!”。
2.在VC6.0下,如何调用WORD并且绘制一个自定义的表格,同时将数据
刚好前段时间弄过。我把大致的代码粘上你看下吧。是C#的。
和你说下思路吧,先在WORD中画好要打印的表,并且设置好,横向的可以在“文件”->;“页面设置”里设置。然后把要绑定数据库的部分插入书签。打印的时候调用设计好的那个WORD文件把数据库的内容绑定到书签就行了。
首先要在程序中引入COM组件中的Microsoft Word 11。
安装的word中要包括.net编程组件和Interop(默认是不安装的)。
public void bindAndPrint()
{ //绑定Work和数据库
Microsoft.Office.Interop.Word.Application app = null;
Microsoft.Office.Interop.Word.Document doc = null;
object missing = System.Reflection.Missing.Value;
object templateFile = Application.StartupPath + @"\word模板.doc";
try
{
app = new Microsoft.Office.Interop.Word.ApplicationClass();
doc = app.Documents.Add(ref templateFile, ref missing, ref missing, ref missing);
try
{
foreach (Microsoft.Office.Interop.Word.Bookmark bm in doc.Bookmarks)
{
bm.Select();
string item = bm.Name;
if (item.Equals("title")) //word中的书签名"title"
{
bm.Range.Text = title; //title为要替换书签的变量,
//即可以将数据库中的值读入title中
}
}
}
catch
{ }
//打印
doc.PrintOut(ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing);
}
catch (Exception exp)
{
MessageBox.Show(exp.Message, this.Text);
}
//结束word进程
finally
{
object saveChange = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
if (doc != null) doc.Close(ref saveChange, ref missing, ref missing);
if (app != null) app.Quit(ref missing, ref missing, ref missing);
}
break;
}
希望能帮到你!
3.求助:c++如何调用word的查找功能
这是个比较典型的错误,在VC中调用Word的功能时大都是先录制一段Word的宏,再“翻译”成VC的函数。但是Word的VBA中文字常量,像这里出现的wdFindContinue和wdReplaceAll,VC是不认的,必须用它们所表示的值传递给被调用的函数才能正常的工作。例子中的:
COleVariant Wrap(wdFindContinue);
COleVariant Replace(wdReplaceAll);
改成:
COleVariant Wrap((short)1); //wdFindContinue=1
COleVariant Replace((short)2); //wdReplaceAll=2
就对了。
类似于这样的常量,VBA里有很多,VC调用Word录制宏经常会出现,怎么能知道这此常量的值是多少呢?可以这样知道,在Word的宏里,加上下面语句:
MsgBox wdFindContinue
MsgBox 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);
4.求助: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);。
5.vc读取word
转自 1.在VC中新建一控制台程序,选支持MFC(当然,你也可以不选择支持MFC的,不过会很麻烦) 2.按CTRL+W调出MFC ClassWizard,Add Class->From a type library,选择你的word的类型库(例如我的是word2003,安装在e盘,我的路径是"e:\edittools\microsoft office\office11\msword.olb"),选择完毕后,在弹出的窗口中选择要让classwizard生成的包装类,在本例中要用到 _Application,Documents,_Document,Range这四个类,选中他们后按OK 3.进入你的main函数所在的cpp文件,加入头文件引用 #include "msword.h" //引用刚才classwizard生成的idispatch包装类 4.加入代码 int _tmain( int argc, TCHAR * argv[], TCHAR * envp[]) { int nRetCode = 0 ; if ( ! AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0 )) { cerr < _t(="" "="" fatal="" error:="" mfc="" initialization="" failed="" "="" )="">< endl;="" nretcode="1" ;="" }="" else="" {="" if="" (coinitialize(null)="" !="S_OK)" {="" afxmessagebox(="" "="" 初始化com支持库失败!="" "="" );="" return="" -="" 1="" ;="" }="" _application="" wordapp;="" documents="" docs;="" _document="" doc;="" range="" arange;="" colevariant="" vtrue((="" short="" )true),="" vfalse((="" short="" )false),="" vopt((="" long="" )disp_e_paramnotfound,="" vt_error);="" wordapp.createdispatch(="" "="" word.application="" "="" ,null);="" wordapp.setvisible(false);="" docs="wordApp.GetDocuments();" doc="docs.Open(COleVariant(" "="" d:\\txt.doc="" "="" ),vfalse,vtrue,vfalse,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt,vopt);="" arange="doc.Range(vOpt,vOpt);" afxmessagebox(arange.gettext());="" 这里gettext得到的就是word文件的纯文本了,你可以将其写到txt文件中="" doc.close(vopt,vopt,vopt);="" wordapp.quit(vopt,vopt,vopt);="" couninitialize();="" }="" return="" nretcode;="" }="" 本文来自csdn博客,转载请标明出处:="">
6.如何用vc 2010打开指定的word文档
C#中有微软提供的操作word的类库,我曾经使用过
C++中应该也有的吧,如果没有官方的,或者找第三方的
如果是OPEN XML 格式的 WORD 文档, 看看给有类库,没有大不了自己看格式介绍,不过估计东西很多
调用打开word就简单了,各种打开方法,shell等等,cmd命令,都会自动调用默认程序打开的
不行就自己搜索注册表,搜索word.exe或者wps.exe,忘记具体程序名了,自己传递参数调用打开
7.如何用c++读取word文档
基本步骤(1)创建)一个 MFC 的程序工程。
注意:在VC中对WORD进行操作需要在MFC AppWizard - Step 2 of4中的Automaiton选项上打上勾。 (2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。
(3)Add Class。\From a type Library。
在 Office目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:\ProgramFiles\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。
当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。 (5)初始化COM。
方法一,找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后CoUninitialize()。 (6)在你需要调用 Office 功能函数的 cpp 文件中 #include //为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类 #include "文件名.h" //具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序: //word应用程序 _Application app; //初始化连接 app.CreateDispatch("word.Application"); Documents doc; CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1); _Document doc1; doc.AttachDispatch(app.GetDocuments()); doc1.AttachDispatch(doc.Add(&a,&b,&c,&d)); Range range; //求出文档的所选区域 range=doc1.GetContent();//取出文件内容 str=range.GetText(); m_richedit.SetWindowText(str); //关闭 app.Quit(&b,&c,&c); //释放环境 app.ReleaseDispatch();。
转载请注明出处51数据库 » vc调用word的库名字
秋心伊始