首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

调用Excel组件有关问题

2012-03-20 
调用Excel组件问题VB.NET codeProtected Sub Button4_Click(ByVal sender As Object, ByVal e As System.E

调用Excel组件问题

VB.NET code
            Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click                       Dim xlApp As Microsoft.Office.Interop.Excel.Application            xlApp = CType(CreateObject("Excel.Application"),                    Microsoft.Office.Interop.Excel.Application)            Dim xlBook As Microsoft.Office.Interop.Excel.Workbook            xlBook = xlApp.Workbooks.Open(savepath)            Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet            xlSheet = xlBook.Worksheets("Sheet1")            xlBook.Save()            xlBook.Close()            xlApp.Workbooks.Close()            xlApp.Quit()            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)            System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)            xlBook = Nothing            xlApp = Nothing            GC.Collect()    End Sub


本人在VS中右击页面>>>在浏览器中查看 使用正常

但是在IIS中调试出现以下错误:

无法创建 ActiveX 组件。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Exception: 无法创建 ActiveX 组件。

源错误: 
行 24: Dim xlApp As Microsoft.Office.Interop.Excel.Application
行 25: xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
行 26: Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
行 27: xlBook = xlApp.Workbooks.Open(savepath)


请问这是什么原因..?????


[解决办法]
是不是由于在租用的空间上没有注册excel.dll?
自己的服务器就装一个office

winform的话,就添加引用excel.dll
[解决办法]
这是网上的一个解决办法,
不知道是否有用:
------------------------
在XP + Vs2003 环境下开发 一个Excel报表,碰到这个问题,经过一番探究,找到了解决方法,

1、在开始-》运行中打入dcomcnfg.exe,启动组件服务。

2、在组件服务中,选择控制台根目录-》组件服务-》计算机-》我的电脑-》DCOM配置-》Microsoft Excel应用程序,右击属性,打开属性窗口。

3、在安全页签中,对配置启动和激活权限进行自定义,加入启动IIS进程帐户和 Everyone 的完全权限。

[解决办法]
VB.NET code
一台新的WIN2K3机器,IIS6.0。在运行一个使用到EXCEL自动化的页面时,出现了以下的错误。Select Distinct WSN from VBApplication.dbo.WF_LIFactView where WS = 'ACC08EAE-D161-4DD7-A166-6DA76630600F';Select * from VBApplication.dbo.WF_LIFactView where WS = 'ACC08EAE-D161-4DD7-A166-6DA76630600F' and LI = '%'and [Year] = 2006 and [Month] = 1System.Exception: 无法创建 ActiveX 组件。 在 Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName) 在 ASP.report_wf_lireport_aspx.Page_Load(Object sender, EventArgs e) 位置 D:\PortalXP\Report\WF\LIReport.aspx:行号 67路径不能为空。参数名: path  其实这个错误是由于IIS账户没有创建EXCEL进程实例引起的,只要做以下的步骤就可以了。1、安装Office2、在开始-》运行中打入dcomcnfg.exe,启动组件服务。3、在组件服务中,选择控制台根目录-》组件服务-》计算机-》我的电脑-》DCOM配置-》Microsoft Excel应用程序,右击属性,打开属性窗口。4、在安全页签中,对配置启动和激活权限进行自定义,加入启动IIS进程帐户的完全权限。
[解决办法]
Dim xlApp As Microsoft.Office.Interop.Excel.Application
应改为
Dim xlApp As new Microsoft.Office.Interop.Excel.Application

删除
xlApp = CType(CreateObject("Excel.Application"),
Microsoft.Office.Interop.Excel.Application)
即可
[解决办法]
我在用的时候也有OFFICE版本的问题。

热点排行