vb.net开发中的office版本问题

问题描述

我自己电脑上安装的是office2003,所以在vb.net的项目添加的引用是“Microsoftoffice11.0objectlibrary”。但到了别人那里,他用的是office2002,这样程序就会运行出错。提示“System.IO.FileNotFoundException:Couldnotloadfileorassembly'Microsoft.Office.Interop.Excel,Version=11.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c'oroneofitsdependencies.Thesystemcannotfindthefilespecified.”请问,在开发中,如何解决这个office版本不同的问题?谢谢!

解决方案

解决方案二:
把Microsoft.Office.Interop.Excel.dll複製過去,放到安裝目錄下。
解决方案三:
我也遇到过,我的解决方法是:将你使用到的DLL放到安装包中,安装时复制到安装目录下
解决方案四:
答案是用后期绑定:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Reflection;namespaceExcelOpt{///<summary>///Excel后期绑定的操作类///</summary>publicclassApplication{objectm_ExcelApp;publicApplication(){TypeobjExcelType=Type.GetTypeFromProgID("Excel.Application");if(objExcelType==null){thrownewException("未发现Excel程序");}m_ExcelApp=Activator.CreateInstance(objExcelType);if(m_ExcelApp==null){thrownewException("启用Excel程序失败!");}}publicvoidOpen(stringExcelFileName){//检查文件是否存在if(!System.IO.File.Exists(ExcelFileName))thrownewException("要打开的文件"+ExcelFileName+"不存在!");//打开文件if(m_ExcelApp!=null){object[]parameters=newobject[1]{ExcelFileName};}}publicvoidSaveAs(stringExcelFileName){}publicboolVisible{get{objectobjVisible=m_ExcelApp.GetType().InvokeMember("Visible",BindingFlags.GetProperty,null,m_ExcelApp,null);if(objVisibleisBoolean)return(bool)objVisible;elsethrownewException("调用方法失败!");}set{object[]Parameters=newobject[1]{value};m_ExcelApp.GetType().InvokeMember("Visible",BindingFlags.SetProperty,null,m_ExcelApp,Parameters);}}publicWorkbooksWorkbooks{get{objectworkbooks=m_ExcelApp.GetType().InvokeMember("Workbooks",BindingFlags.GetProperty,null,m_ExcelApp,null);if(workbooks==null)thrownewException("查询工作簿时失败!");elsereturnnewWorkbooks(workbooks);}}}}namespaceExcelOpt{publicclassWorkbooks{privateobjectm_Workbooks;privatestringm_ExcelFileName;publicWorkbooks(objectworkbooks){m_Workbooks=workbooks;}publicvoidOpen(stringExcelFileName){try{m_ExcelFileName=ExcelFileName;object[]Parameters=newobject[1]{ExcelFileName};m_Workbooks.GetType().InvokeMember("Open",BindingFlags.InvokeMethod,null,m_Workbooks,Parameters);}catch(Exceptionerr){throwerr;}}publicWorkbookthis[intindex]{get{object[]Parameters=newobject[1]{index};objectworkbook=m_Workbooks.GetType().InvokeMember("Item",BindingFlags.GetProperty,null,m_Workbooks,Parameters);if(workbook==null)thrownewException("获取工作薄时出现错误!");elsereturnnewWorkbook(workbook);}}}}namespaceExcelOpt{publicclassWorkbook{privateobjectm_Workbook;publicWorkbook(objectworkbook){m_Workbook=workbook;}publicWorksheetsWorksheets{get{objectworksheets=m_Workbook.GetType().InvokeMember("Worksheets",System.Reflection.BindingFlags.GetProperty,null,m_Workbook,null);if(worksheets==null)thrownewException("获取工作表集合时失败!");elsereturnnewWorksheets(worksheets);}}publicvoidSaveAs(stringFileName){object[]Parameters=newobject[1]{FileName};m_Workbook.GetType().InvokeMember("SaveAs",System.Reflection.BindingFlags.InvokeMethod,null,m_Workbook,Parameters);}}}namespaceExcelOpt{publicclassWorksheets{privateobjectm_Worksheets;publicWorksheets(objectworksheets){m_Worksheets=worksheets;}publicWorksheetthis[intindex]{get{object[]Parameters=newobject[1]{index};objectworksheet=m_Worksheets.GetType().InvokeMember("Item",System.Reflection.BindingFlags.GetProperty,null,m_Worksheets,Parameters);if(worksheet==null)thrownewException("获取工作表时出现错误!");elsereturnnewWorksheet(worksheet);}}}}namespaceExcelOpt{publicclassWorksheet{privateobjectm_Worksheet;publicWorksheet(objectworksheet){m_Worksheet=worksheet;}publicRangethis[introw,intcol]{get{object[]Parameters=newObject[2]{row,col};objectcells=m_Worksheet.GetType().InvokeMember("Cells",System.Reflection.BindingFlags.GetProperty,null,m_Worksheet,Parameters);if(cells==null)thrownewException("获取单元格失败!");elsereturnnewRange(cells);}}publicRangethis[introw,stringcol]{get{object[]Parameters=newObject[2]{row,col};objectcells=m_Worksheet.GetType().InvokeMember("Cells",System.Reflection.BindingFlags.GetProperty,null,m_Worksheet,Parameters);if(cells==null)thrownewException("获取单元格失败!");elsereturnnewRange(cells);}}}}
解决方案五:
漏了一个:)namespaceExcelOpt{publicclassRange{privateobjectm_Range;publicRange(objectRange){m_Range=Range;}publicobjectValue{get{objectresult=m_Range.GetType().InvokeMember("Value",System.Reflection.BindingFlags.GetProperty,null,m_Range,null);returnresult;}set{object[]Parameters=newObject[1]{value};m_Range.GetType().InvokeMember("Value",System.Reflection.BindingFlags.SetProperty,null,m_Range,Parameters);}}}}
解决方案六:
在参照上的copy选项上选CopyAlways,自动拷贝DLL过去就行了。
解决方案七:
请问limeng0513,这个“参照”在哪可以找到?谢谢!
解决方案八:
点击显示所有文件按钮,可以看到参照设置,是文件夹形式,点击参照的Excel,属性里的拷贝项目选总是拷贝。
解决方案九:
引用1楼rockyvan的回复:

把Microsoft.Office.Interop.Excel.dll複製過去,放到安裝目錄下。

解决方案十:
在解决方案资源管理器中的引用项的属性中,把“复制本地”属性设置成“TRUE”,然后再制作安装包的时候把BIN下的所有都包括进去。

时间: 2024-09-12 22:27:36

vb.net开发中的office版本问题的相关文章

asp.net web开发中实现对office文档(word、excel)进行网页内编辑

问题描述 asp.netweb开发中实现对office文档(word.excel)进行网页内编辑,希望能给出具体实例源码,不甚感谢! 解决方案 解决方案二:顶一下解决方案三:用控件www.ntko.com*****************************************************************************欢迎使用CSDN论坛专用阅读器:CSDNReader(附全部源代码)http://www.cnblogs.com/feiyun0112/arc

消息队列在VB.NET数据库开发中的应用

数据|数据库 我们先简单的了解一下什么是消息队列(MSMQ)?消息队列是 Windows 2000(NT也有MSMQ,WIN95/98/me/xp不含消息队列服务但是支持客户端的运行)操作系统中通讯的基础,也是用于创建分布式.松散连接通讯应用程序的工具.这些应用程序可以通过不同种类的网络进行通讯,也可以与脱机的计算机通讯.消息队列分为用户创建队列和系统队列,用户队列分为: · "公共队列"在整个可传递消息的"消息队列"网络中复制并传输,并且有可能由网络连接的所有站点

关于在.Net开发中使用Sqlite的版本选择问题

原文:关于在.Net开发中使用Sqlite的版本选择问题 如果一个.NET应用要自适应32位/64位系统,只需要在项目的"目标平台"设置为"Any CPU".但是如果应用中使用了SQLite,情况就不同了.   SQLite的.NET开发包来自是System.Data.SQLite,完成兼容ADO.NET接口,也提供了Linq和Entity Framework 6实现.但这不重要,重要的是System.Data.SQLite是由两部分代码组成的,一部分是非托管的C+

【原】webapp开发中兼容Android4.0以下版本的css hack

话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了,看起来很简单,其实背后还有一个大坑等着你. 虽说是webkit内核,但页面的展现效果还会受到自身系统的影响,升级后的系统打了补丁,新增了新的属性,支持更多丰富炫丽的效果,那么旧的系统(未升级的)就不支持一些新的属性,开发哥哥就是没有做好低端版本兼容的话,就会产生所谓的bug的,再加上android

【求助】我要开发一个在线编辑试题的系统,请问如何在系统中把office word整合进去

问题描述 [求助]我要开发一个在线编辑试题的系统,请问如何在系统中把office word整合进去 之前查了一些关于officewordapp的资料,但是不知道该怎么操作,我现在用的是office2010,想知道怎样才能在系统中加入officeword的功能,需要什么插件,如何操作,希望懂的大神们不吝赐教 解决方案 微软好像有个Microsoft Office Web Components中的SheetSpace,这个是excel的工具,word里面也应该有.

java开发-IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题

问题描述 IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题 我现在电脑安装的是ie10,当我在开发中想测试页面是否兼容10以下的版本时,是通过切换浏览器模式至低版本,还是切换文档模式至低版本,还是同时都切换,并保持一致. 希望用IE开发的老工程师回答,感激. 解决方案 装一个IETester,IETester是一个免费的WebBrowser控件,让您有渲染和IE8的JavaScript引擎,IE7和IE 6在Windows 7,Vista和XP的IE5.5中,以及在同一进程中安装的IE浏

在vs.net 2005中没有vb.net选项,貌似没有,需要vb.net开发,怎么办啊?

问题描述 在vs.net2005中没有vb.net选项,貌似没有,需要vb.net开发,怎么办啊?感谢 解决方案 解决方案二:里面的VB就是VB.net解决方案三:谢谢解决方案四:MicrosoftVisualBasic2005就是,也叫VB8.解决方案五:里面的VB就是啊

通过vb.net开发的web将一个excel文件中的数据导入到oracle中 出错

问题描述 通过vb.net开发的web将一个excel文件中的数据导入到oracle中又什么别的比较好的办法吗?我试过了:先用FileUpload.SaveAs方法将文件保存在服务器的一个文件夹下在用OleDbDataAdapter.Fill方法将excel读入到dataset最后循环dataset将数据写入oracle出现了在我本地机器上好用,但是在上传到服务器上后能够保存,但是用oledb访问不了,OleDbConnection一open就出现未定义的错误2147467259 解决方案 解决

开发项目中如何管理版本有关的挑战

具体地讲,本文将讨论多个与如何管理版本有关的挑战,还将介绍为了提高生产力和质量而引入的一些变更. 在 14 个月的服务活动中,我与多个团队的成员合作过,不断增强现有流程,最大限度地提高开发团队的生产力,并满足客户为大型 Web 应用程序而设定的所有预期,这个 Web 应用程序是客户在竞争异常激烈的行业中取得全面成功的关键.该应用程序的实际用途对本讨论并不重要,我只想分享一下我在领导一个团队不断向业务关键型应用程序提供版本时学到的一些经验. 我的这个开发团队包括 7 位开发人员.1 位业务分析师.