闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞鐟滃繘寮抽敃鍌涚厱妞ゎ厽鍨垫禍婵嬫煕濞嗗繒绠抽柍褜鍓欑粻宥夊磿闁单鍥敍濠婂懐鐒奸柣搴秵閸嬩焦绂嶅⿰鍫熺厸闁告劑鍔岄埀顒傛暬楠炲繘鍩勯崘褏绠氬銈嗗姂閸婃洟寮搁幋婢㈠酣宕惰闊剟鏌熼鐣屾噰妞ゃ垺妫冨畷鐔煎Ω閵夈倕顥氶柣鐔哥矊缁绘帡宕氶幒鎾剁瘈婵﹩鍓涢娲⒑閹稿孩鐓ラ柛妯荤矒瀹曟垿骞樼紒妯绘珖闂侀€炲苯澧撮柟顕€绠栭弫鎾绘偐閼碱剦鍚嬫俊鐐€栧Λ浣规叏閵堝鏁婇柡鍥ュ灪閳锋帒霉閿濆懏鎲哥紒澶屽劋娣囧﹪顢曢姀鈥充淮闂佽鍠氶崑銈夊极閸愵喖纾兼慨妯块哺閻擄綁姊绘担鍝ョШ婵☆偄娼¢幃鐐烘晝閸屾稑浜楅梺闈涱槴閺呮粓鎮¢悢鍏肩厸闁搞儮鏅涙禒婊堟煃瑜滈崜娆忥耿闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗     婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i姀鐘差棌闁轰礁锕弻鈥愁吋鎼粹€崇闂傚倸鍋嗛崹閬嶅Φ閸曨垰鍐€闁靛ě鍛帎缂傚倷娴囩紙浼村磹濠靛钃熼柨婵嗩槹閺呮煡鏌涘☉鍗炴灍闁圭兘浜堕幃妤冩喆閸曨剛顦ㄩ梺缁樻惈缁绘繂顕f繝姘亜閻炴稈鈧厖澹曞┑鐐村灦椤忎即骞嬮敃鈧壕鍧楁煛閸モ晛鏋旂紒鐘荤畺閺岀喓鈧稒岣块幊鍐煟韫囧﹥娅婇柡宀嬬秮楠炴ḿ鈧潧鎲¢崚娑㈡⒑閸濆嫭婀伴柣鈺婂灦閻涱噣宕堕鈧粈鍌炴煕濠靛嫬鍔滈柡鍛偢濮婄粯鎷呴搹鐟扮闂佺懓鎲¢幃鍌炪€侀弽銊ョ窞濠电姴瀛╃紞搴♀攽閻愬弶鈻曞ù婊勭矒楠炴垿鎳滈悙閫涚盎闂佽宕樺▔娑欑濠婂啠鏀介柍鈺佸暞閵囨繃鎱ㄦ繝鍛仩闁瑰弶鎸冲畷鐔碱敇閻旂ǹ鏅搁梺璇叉唉椤煤閻斾赴缂氱憸鏃堛€佸璺何ㄩ柨鏂垮⒔閻﹀牓姊洪幖鐐插姌闁告柨绉撮埢宥夊閵堝棌鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷

45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:导入office的类型库的方法步骤

导入office的类型库的方法步骤

2016-08-27 15:19:32 来源:www.45fan.com 【

导入office的类型库的方法步骤

关键词:

Office,COM,OLB

我们要操作office那么第一个想到的就是该怎么把它的库加入到我们项目中呢?

最近对office研究了一番,ms的office可以说完全利用com的一个杰作,我们没有

比它用的更好,以前看到过国外有几家公司也用com写的开发包,例如ArcGis,

不能不佩服,看来还需要不断练内功!

最近去csdn论坛发了个关于offfice清理问题的帖子,冷清的让我心寒!这些大牛

都去写blog了?

进入正题,下面我列出office当前所有版本的类型库,office2007以后再说!哈哈!
  office版本号              类型库
  --------------------------------------------------

  Microsoft Access 97          Msacc8.olb
  Microsoft Jet Database 3.5      DAO350.dll
  Microsoft Binder 97          Msbdr8.olb
  Microsoft Excel 97          Excel8.olb
  Microsoft Graph 97          Graph8.olb
  Microsoft Office 97          Mso97.dll
  Microsoft Outlook 97         Msoutl97.olb
  Microsoft PowerPoint 97        Msppt8.olb

  Microsoft Word 97           Msword8.olb
  Microsoft Access 2000         Msacc9.olb
  Microsoft Jet Database 3.51      DAO360.dll
  Microsoft Binder 2000         Msbdr9.olb
  Microsoft Excel 2000         Excel9.olb
  Microsoft Graph 2000         Graph9.olb
  Microsoft Office 2000         Mso9.dll
  Microsoft Outlook 2000        Msoutl9.olb
  Microsoft PowerPoint 2000       Msppt9.olb
  Microsoft Word 2000          Msword9.olb 

  Microsoft Access 2002         Msacc.olb
  Microsoft Excel 2002         Excel.exe
  Microsoft Graph 2002         Graph.exe 
  Microsoft Office 2002         MSO.dll
  Microsoft Outlook 2002        MSOutl.olb
  Microsoft PowerPoint 2002       MSPpt.olb
  Microsoft Word 2002          MSWord.olb

  Microsoft Office Access 2003     Msacc.olb
  Microsoft Office Excel 2003      Excel.exe
  Microsoft Graph 2003         Graph.exe 
  Microsoft Office 2003         MSO.dll
  Microsoft Office Outlook 2003     MSOutl.olb
  Microsoft Office PowerPoint 2003   MSPpt.olb
  Microsoft Office Word 2003      MSWord.olb

上面你可能注意到了,office2002office2003怎么有类型库在exe中?
我也不知道ms为啥把它放进去,不过用import一样的导入。

下面我以office2003为例写的一个例子:

#import "C://Program Files//Common Files//system//ado//msado21.tlb" no_namespace /
rename ("EOF", "adoEOF") 

#import "C://Program Files//Common Files//Microsoft Shared//DAO//DAO360.DLL" rename("EOF","EndOfFile") /
rename("BOF","BegOfFile")

#import "C:/Program Files//Common Files//Microsoft Shared//Office11//MSO.DLL" rename_namespace("Office")
using namespace Office;

#import "C://Program Files//Common Files//Microsoft Shared//VBA//VBA6//VBE6EXT.olb" rename_namespace("VBE6")
using namespace VBE6;

#import "C:/Program Files/Microsoft Office/Office11/MSWORD.olb" rename("ExitWindows","ExitWindowsEx"),named_guids,rename_namespace("MSWord")
using namespace MSWord;

#import "C:/Program Files/Microsoft Office/Office11/MSACC.olb" implementation_only,rename_namespace("MSACC")
using namespace MSACC;

#import "C:/Program Files/Microsoft Office/Office11/MSPPT.olb" implementation_only,rename_namespace("MSPPT")
using namespace MSPPT;

#import "C://Program Files//Microsoft Office//Office11//Excel.exe" rename("RGB","RGBEx"),rename("DialogBox","DialogBoxEx"),rename_namespace("MSExcel")
using namespace MSExcel;

说明:
1、前四个的路径都是默认的,后四个根据版本不同更改即可!
2adodao是为了支持Access的,如果你不是操作Access那么可以去掉他们!
3officeVBE6是必须的,我们每次都会用到!

下面给一个简单例子:
int _tmain(int argc, _TCHAR* argv[])
{
//Initialize the COM libraries
::CoInitialize(NULL);

std::cout<<"Begin clear!"<<std::endl;

// Create an instance of the Word application and obtain the 
// pointer to the application's IDispatch interface.
CLSID clsidWord;
CLSIDFromProgID(L"Word.Application", &clsidWord); 

IUnknown* pUnk;

HRESULT hr = GetActiveObject(clsidWord, NULL, (IUnknown**)&pUnk); //得到当前打开的word的接口指针
    //你也可以用CoCreateInstance(...)去创建!

    MSWord::_ApplicationPtr pApplication = pUnk;
//...
::CoUninitialize();
std::cout<<"Finish!---Thanks!"<<std::endl;
system("PAUSE");
return 0;
}

作者:wangweixing2000
转贴请注明出处!谢谢!
 

本文地址:http://www.45fan.com/a/question/68451.html
Tags: 导入 Office 类型
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部