作者:wangweixing2000
我们要操作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
上面你可能注意到了,office2002和office2003怎么有类型库在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、前四个的路径都是默认的,后四个根据版本不同更改即可!
2、ado和dao是为了支持Access的,如果你不是操作Access那么可以去掉他们!
3、office和VBE6是必须的,我们每次都会用到!
下面给一个简单例子:
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;
}
安装用友U8时弹出写至文件c:\windows\system32\Msword9.olb时出错,请确认您有权访问该目录
可能是文件丢失了吧
怎么办?
重新安装一遍
VC6.0怎么打开Word文件?
MSWORD9.OLB好像是officw2000的文件吧。
Microsoft Office 2003使用的是这个文件:“MSWORD.OLB”。
如果你的是默认的安装目录,那么,在加载库文件的时候,定位到这个路径
C:\Program Files\Microsoft Office\OFFICE11
然后,直接在文件名里输入MSWORD.OLB,再点击打开即可。
我下载的都没有的,在哪下载的才有?
asp.net如何操作Word文档?
操作WORD配置说明
引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB)
1.运行Dcomcnfg.exe
2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档
3.点击属性
4.选择“安全性”
5.选定“使用自定义访问权限”和“使用自定义启动权限”
6.分别编辑权限,添加Everyone(ASPNET,VS Developers,Debugger User)
7.选择“身份标识”,在选定“交互式用户” 即可
8.在Web.config里加 <identity impersonate="true"/>
C#:
ASP.NET操作Word文档一直是一个大家比较关心的话题,其实在ASP.NET里操作Word文档一点也不难,大家只需按本文提示,就能轻轻松松操作Word文档!
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目>ASP.NET Web应用程序,位置为“http://localhost/word”。(如图一)
二、引用Word对象库文件
要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
asp.net页面读取word文档内容显示
操作WORD配置说明
引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB)
1.运行Dcomcnfg.exe
2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档
3.点击属性
4.选择“安全性”
5.选定“使用自定义访问权限”和“使用自定义启动权限”
6.分别编辑权限,添加Everyone(ASPNET,VS Developers,Debugger User)
7.选择“身份标识”,在选定“交互式用户” 即可
8.在Web.config里加 identity impersonate="true"/
C#:
ASP.NET操作Word文档一直是一个大家比较关心的话题,其实在ASP.NET里操作Word文档一点也不难,大家只需按本文提示,就能轻轻松松操作Word文档!
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目ASP.NET Web应用程序,位置为“”。(如图一)
二、引用Word对象库文件
要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目添加引用浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
答案补充
三、Webform1.aspx.cs代码
完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word,Webform1.aspx.cs源码请参见
五、web.config设置
web.config文件还需添加一句 identity impersonate="true"/以启用模拟身份,因为默认ASPNET这个用户是没有权限访问Word.ApplicationClass(),当启用模拟身份后所有页面将会使用匿名Internet用户帐户(IUSR_machinename)这个用户名的权限执行,这样我们就能成功访问Word.ApplicationClass()并在ASP.NET中操作Word!
//传文档所在路径 返回文档内容
public string Doc2Text(string docFileName)
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
object fileobj = docFileName;
object nullobj = System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
);
//取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj, ref nullobj, ref nullobj);
//关闭COM
wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);
//返回
return outText;
}
当然 在读取的时候会有损坏的文件 和被加密的文件等问题 总之C#和office的兼容性不太好
别忘了要引用word的dll
引用文件夹 右键添加引用 在组件里找Microsoft.Office.Interop.Word
找不到“属性”选项?
sql数据库怎么导入word文档
一、准备工作
首先请确认服务端已经安装了Office Word(以下将以Office XP为例),操作系统为win2000或XP,并且已配置好.NET的运行环境及安装VS.NET C#开发环境后,我们就可以打开VS.NET,并新建一个Visual C#项目ASP.NET Web应用程序,位置为“”。(如图一)
二、引用Word对象库文件
要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目添加引用浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的!
三、Webform1.aspx.cs代码
完成添加引用后,MSWORD.OLB已经转化为相关DLL文件并放置于项目的BIN目录下了,这样我们只需在源码中创建该对象,并使用word库文件内置的操作函数即可轻松实现操作Word,Webform1.aspx.cs源码请参见
五、web.config设置
web.config文件还需添加一句 identity impersonate="true"/以启用模拟身份,因为默认ASPNET这个用户是没有权限访问Word.ApplicationClass(),当启用模拟身份后所有页面将会使用匿名Internet用户帐户(IUSR_machinename)这个用户名的权限执行,这样我们就能成功访问Word.ApplicationClass()并在ASP.NET中操作Word!
//传文档所在路径返回文档内容publicstringDoc2Text(stringdocFileName)
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClasswordApp=newMicrosoft.Office.Interop.Word.ApplicationClass();
objectfileobj=docFileName;
objectnullobj=System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Documentdoc=wordApp.Documents.Open(reffileobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,
refnullobj,refnullobj,refnullobj,refnullobj,refnullobj,refnullobj,refnullobj
);
//取得doc文件中的文本
stringoutText=doc.Content.Text;
//关闭文件
doc.Close(refnullobj,refnullobj,refnullobj);
//关闭COM
wordApp.Quit(refnullobj,refnullobj,refnullobj);
//返回
returnoutText;
}
在读取的时候会有损坏的文件 和被加密的文件等问题 总之C#和office的兼容性不太好
别忘了要引用word的dll
引用文件夹 右键添加引用 在组件里找Microsoft.Office.Interop.Word
读出了word文档再把它写入sqlserver数据库就可以了.
能不能将VC的输出信息直接保存到doc文件中?
可以,但需要特殊库支持。
Word 2000 Msword9.olb
Office Word 2003 MSWord.olb
cpp的顶部添加如下行:
#include "msword8.h" // msword9.h for Word 2000, msword.h for Word 2002
MSDN中有专门的描述,搜索:Microsoft Office Development with Visual Studio
转载请注明出处51数据库 » msword9.olb 如何导入office的类型库