问题:如何引用WORD.dll操作word(在线等)

long_4 2004-12-17 09:01:06
请教:我想操作WORD,看了许多资料都让引用word.dll文件,我这里有三个问题:
1、必须要引用这个文件吗?
2、在哪里找这个文件?
3、Office2003和Officexp、Office2000的word.dll文件一样吗?如果不一样,我在本地引用Office2003的word.dll文件,然后在装有Office2000或Officexp上运行,会不会出现问题?

望各位大侠为兄弟指点迷津!
...全文
924 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
long_4 2004-12-17
  • 打赏
  • 举报
回复
楼上的兄弟,请问您说得需要包括另外两个文件是哪两个?与版本有什么关系吗?
是不是我需要引用word9.0 word10.0 word11.0?
然后从程序中进行判断?
跋涉者 2004-12-17
  • 打赏
  • 举报
回复
(1)必须要引用这个文件,而且有的时候需要包括另外两个文件,根据你的版本来定.
(3)版本不一样,在不同的计算机上肯定有差异的,你的程序可能需要进行判断,另外,我以前在用9.0版本的时候发现它有一些bug.现在我用的是word10.0版本在做开发
看下面这几篇文章对你有没有帮助:
Office XP 主互操作程序集入门http://www.microsoft.com/china/msdn/archives/library/dnofftalk/html/office10032002.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/odc_piaissues.asp
long_4 2004-12-17
  • 打赏
  • 举报
回复
我刚才还注意到, sdenli(史丹力) 哥们的机子上是word 9.0.dll, 而我的是Microsoft Word 11.0 Object Library,这样的话,移植程序会不会出现问题?
long_4 2004-12-17
  • 打赏
  • 举报
回复
楼上的哥们帮我回答了第二个问题。可是第一和第三的问题,谁来帮我解决啊?
1、必须要引用这个文件吗?
3、Office2003和Officexp、Office2000的word.dll文件一样吗?如果不一样,我在本地引用Office2003的word.dll文件,然后在装有Office2000或Officexp上运行,会不会出现问题?
syuan 2004-12-17
  • 打赏
  • 举报
回复
关注
sdenli 2004-12-17
  • 打赏
  • 举报
回复
是的。在工程里的引用里面的COM 里面有的 word 9.0.dll好象是这个吧
long_4 2004-12-17
  • 打赏
  • 举报
回复
谢谢,明白了!
跋涉者 2004-12-17
  • 打赏
  • 举报
回复
我的判断版本的方法不一定正确,微软有常量,不过我当时没有时间去查找资料
office开发在msdn上有很详细的资料.
跋涉者 2004-12-17
  • 打赏
  • 举报
回复
你看了上面那两篇文章了吗?
在按其下载的文件的readme.htm文档里有以下表格:
These Office XP applications... ...depend on these Office XP PIAs.
Microsoft Access adodb.dll
dao.dll
Microsoft.Office.Interop.Access.dll
Microsoft.Office.Interop.Owc.dll
Microsoft.Vbe.Interop.dll
mscomctl.dll
msdatasrc.dll
office.dll
stdole.dll

Microsoft Excel Microsoft.Office.Interop.Excel.dll
Microsoft.Vbe.Interop.dll
office.dll
stdole.dll

Microsoft FrontPage Microsoft.Office.Interop.FrontPage.dll
Microsoft.Office.Interop.FrontPageEditor.dll
Microsoft.Vbe.Interop.dll
office.dll
stdole.dll

Microsoft Graph Microsoft.Office.Interop.Graph.dll
office.dll
stdole.dll

Microsoft Office XP Web Components adodb.dll
Microsoft.Office.Interop.Owc.dll
mscomctl.dll
msdatasrc.dll
stdole.dll

Microsoft Outlook® Microsoft.Office.Interop.Outlook.dll
Microsoft.Office.Interop.OutlookViewCtl.dll
office.dll
stdole.dll

Microsoft PowerPoint® Microsoft.Office.Interop.PowerPoint.dll
Microsoft.Vbe.Interop.dll
office.dll
stdole.dll

Microsoft Publisher Microsoft.Office.Interop.Publisher.dll
office.dll
stdole.dll

Microsoft Office XP smart tags Microsoft.Office.Interop.SmartTag.dll
stdole.dll

Microsoft Visio® Microsoft.Office.Interop.Visio.dll
stdole.dll

Microsoft Word Microsoft.Office.Interop.Word.dll
Microsoft.Vbe.Interop.dll
office.dll
stdole.dll


表明WORD需要引用Microsoft Word Microsoft.Office.Interop.Word.dll
Microsoft.Vbe.Interop.dll
office.dll
stdole.dll 这几个文件

另外,不是要你copy几个文件来判断,而是在获取用户的版本后,要调用不同的处理函数.如我写的:
try
{
Console.WriteLine("The Office Version is :"+Word_App.Version);

float iOffice_Version=float.Parse(Word_App.Version);
bool bConfirmConversions=false;
bool bReadOnly =!bIsAddFooterPageNumber;
bool bAddToRecentFiles=false;
bool bOpenAndRepair=false;
object oFileName =(object) strFileName;
object obConfirmConversions=(object)bConfirmConversions;
object obReadOnly=(object)bReadOnly;
object obAddToRecentFiles=(object)bAddToRecentFiles;
object obOpenAndRepair=(object)bOpenAndRepair;

/*
public abstract virtual Word.Document Open2000 ( System.Object FileName , System.Object ConfirmConversions , System.Object ReadOnly , System.Object AddToRecentFiles , System.Object PasswordDocument , System.Object PasswordTemplate , System.Object Revert , System.Object WritePasswordDocument , System.Object WritePasswordTemplate , System.Object Format , System.Object Encoding , System.Object Visible )
*/
if(iOffice_Version<9.0) //OFfice<2000,这儿需要修改成联合,先暂时用着
{
Word_doc=Docs.OpenOld(ref oFileName,ref obConfirmConversions,ref obReadOnly,ref obAddToRecentFiles,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing);
Word_doc.PrintOutOld(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);
}
else if(iOffice_Version==9.0F) //Office 2000
{

// Word_doc=Docs.Open2000(ref oFileName,ref missing,ref missing,ref missing ,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing);
Word_doc=Docs.Open2000(ref oFileName,ref obConfirmConversions,ref obReadOnly,ref obAddToRecentFiles,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing);
Word_doc.PrintOut2000(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);
}
else //> OfficeXp and late
{
// Word_doc=Docs.Open(ref oFileName,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);
Word_doc=Docs.Open(ref oFileName,ref obConfirmConversions,ref obReadOnly,ref obAddToRecentFiles,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref missing,ref obOpenAndRepair,ref missing,ref missing);
Word_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);
}
long_4 2004-12-17
  • 打赏
  • 举报
回复
没有解决,就自己顶!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧