请教:数据库中有些内容需要插入到word中,该如何实现了? ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然通过程序从数据库中提取数据到word中 从数据库提取数据我就不说了,提取数据后,用office的开发接口打开一个word文件,然后吧数据写入即可。例子代码如下:====================================开始的时候先初始化COM组件: //初始化COM if (CoInitialize(NULL)!=0) { AfxMessageBox("初始化COM支持库失败!"); exit(1); }然后启动word进程: try { //ASSERT (NULL==m_objWord); m_objWord = new _ApplicationWord; if (!m_objWord->CreateDispatch("Word.Application", NULL)) { AfxMessageBox("不能创建Word对象!", MB_ICONSTOP); delete m_objWord; m_objWord = NULL; throw 0; return; } else{ // AfxMessageBox("成功创建Word对象!"); m_sOldDefaultPrinter = m_objWord->GetActivePrinter(); // Verify the new if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0) { m_objWord->SetActivePrinter(m_sNewPrinter); //设置当前打印机 } } } catch(COleException *oe) { oe->ReportError(); delete oe; } catch(...) { }然后打开word文件: Documents m_objDocs; _Document m_objSingleDoc; m_objDocs = m_objWord->GetDocuments(); m_objWord->SetVisible(false); //设置为隐藏 _variant_t vSourFileName(sFileName); LPDISPATCH hResult; hResult = m_objDocs.Open( /*[in]*/&vSourFileName, /*[in] VARIANT * ConfirmConversions*/&vOptional, /*[in] VARIANT * ReadOnly*/&vTrue, /*[in] VARIANT * AddToRecentFiles*/&vFalse, /*[in] VARIANT * PasswordDocument*/&vOptional, /*[in] VARIANT * PasswordTemplate*/&vOptional, /*[in] VARIANT * Revert*/&vOptional, /*[in] VARIANT * WritePasswordDocument*/&vOptional, /*[in] VARIANT * WritePasswordTemplate*/&vOptional, /*[in] VARIANT * Format*/&vOptional,//"wdOpenFormatAuto",// /*[in] VARIANT * Encoding*/&vOptional, /*[in] VARIANT * Visible*/&vOptional /*[in] VARIANT * OpenAndRepair*///&vOptional, /*[in] VARIANT * DocumentDirection*///&vOptional, /*[in] VARIANT * NoEncodingDialog*///&vOptional, /*[out,retval]*/ //&m_objSingleDoc );然后操纵m_objWord对象可以做任何需要的动作(如打印);最后,注销word进程,并反初始化COM: if (m_objWord) { //恢复原来的默认打印机 if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0) { m_objWord->SetActivePrinter(m_sOldDefaultPrinter); //设置当前打印机 } try { COleVariant covTrue((short)TRUE), covFalse((short)FALSE); m_objWord->Quit(covFalse, // SaveChanges. covTrue, // OriginalFormat. covFalse // RouteDocument. ); m_objWord->ReleaseDispatch(); delete m_objWord; m_objWord = NULL; } catch(COleException *oe) { oe->ReportError(); delete oe; } catch(...) { } //OLE_CATCH(); } CoUninitialize(); Office Automation Using Visual C++ Q196776 请问WinAPI中有没有定位文件指针的函数 VS2003安装部署问题 VC++中关于状态栏的问题?? 动态库调用时,对话框弹不出来怎么办? 对话框嵌套的问题。 vc中怎样调用vb的程序或函数 ===菜鸟问题===请问在ORACLE下,怎么用VC程序实现数据库里的数据的备份和还原?? VC坐标轴动态改变问题? 100分求助,请高手指点,并求好用的串口读写的代码? 为什么说我执行了非法操作??? 各位大虾出手相救了!!如何可以得到webbrowser控件的滚动条!!!!急 CBitmap中装入位图文件,为什么出错?
例子代码如下:
====================================
开始的时候先初始化COM组件:
//初始化COM
if (CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持库失败!");
exit(1);
}
然后启动word进程:
try
{
//ASSERT (NULL==m_objWord);
m_objWord = new _ApplicationWord;
if (!m_objWord->CreateDispatch("Word.Application", NULL))
{
AfxMessageBox("不能创建Word对象!", MB_ICONSTOP);
delete m_objWord; m_objWord = NULL;
throw 0;
return;
}
else{
// AfxMessageBox("成功创建Word对象!");
m_sOldDefaultPrinter = m_objWord->GetActivePrinter(); // Verify the new
if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0)
{
m_objWord->SetActivePrinter(m_sNewPrinter); //设置当前打印机
}
}
}
catch(COleException *oe)
{
oe->ReportError();
delete oe;
}
catch(...)
{
}然后打开word文件:
Documents m_objDocs;
_Document m_objSingleDoc;
m_objDocs = m_objWord->GetDocuments();
m_objWord->SetVisible(false); //设置为隐藏
_variant_t vSourFileName(sFileName);
LPDISPATCH hResult;
hResult = m_objDocs.Open(
/*[in]*/&vSourFileName,
/*[in] VARIANT * ConfirmConversions*/&vOptional,
/*[in] VARIANT * ReadOnly*/&vTrue,
/*[in] VARIANT * AddToRecentFiles*/&vFalse,
/*[in] VARIANT * PasswordDocument*/&vOptional,
/*[in] VARIANT * PasswordTemplate*/&vOptional,
/*[in] VARIANT * Revert*/&vOptional,
/*[in] VARIANT * WritePasswordDocument*/&vOptional,
/*[in] VARIANT * WritePasswordTemplate*/&vOptional,
/*[in] VARIANT * Format*/&vOptional,//"wdOpenFormatAuto",//
/*[in] VARIANT * Encoding*/&vOptional,
/*[in] VARIANT * Visible*/&vOptional
/*[in] VARIANT * OpenAndRepair*///&vOptional,
/*[in] VARIANT * DocumentDirection*///&vOptional,
/*[in] VARIANT * NoEncodingDialog*///&vOptional,
/*[out,retval]*/ //&m_objSingleDoc
);然后操纵m_objWord对象可以做任何需要的动作(如打印);
最后,注销word进程,并反初始化COM:
if (m_objWord)
{
//恢复原来的默认打印机
if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0)
{
m_objWord->SetActivePrinter(m_sOldDefaultPrinter); //设置当前打印机
}
try
{
COleVariant covTrue((short)TRUE), covFalse((short)FALSE);
m_objWord->Quit(covFalse, // SaveChanges.
covTrue, // OriginalFormat.
covFalse // RouteDocument.
);
m_objWord->ReleaseDispatch();
delete m_objWord;
m_objWord = NULL;
}
catch(COleException *oe)
{
oe->ReportError();
delete oe;
}
catch(...)
{
}
//OLE_CATCH();
}
CoUninitialize();