UiPath - issue - "Make sure Excel is installed.the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: In "
【问题描述】
在 UiPath (2019.3.0 Community Edition) 使用 Excel Application Scope + Read Cell 读取 Exce l时报错
这个问题从 4/8/2019 17:47 起,到今天 4/15/2019 17:06,困扰了我一周,终于解决了!
下图是 Designer panel 的 workflow 和 异常截图
以下是详细的报错信息:
19.3.0+Branch.master.Sha.5fdb43627d7d3c011018bb545ddf9470210d44a9 Source: Excel Application Scope Message: Error opening workbook. Make sure Excel is installed. Exception Type: System.Exception An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.Exception: Error opening workbook. Make sure Excel is installed. ----> System.InvalidCastException: Unable to cast COM object of type 'Microsoft.Office.Interop.Excel.ApplicationClass' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Interface not registered (Exception from HRESULT: 0x80040155). at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease) at Microsoft.Office.Interop.Excel.ApplicationClass.set_SheetsInNewWorkbook(Int32 RHS) at UiPath.Excel.WorkbookApplication.StartNewApplication() --- End of inner ExceptionDetail stack trace --- at UiPath.Excel.WorkbookApplication.StartNewApplication() at UiPath.Excel.WorkbookApplication.InitializeExcelApp() at UiPath.Excel.Activities.ExcelApplicationScope.<>c.<.ctor>b__44_0(WorkbookArguments args) at UiPath.Excel.Activities.ExcelApplicationScope.Execute(NativeActivityContext context) at System.Activities.NativeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
问题关键点:
This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Interface not registered (Exception from HRESULT: 0x80040155).
【解决方法】
可能的原因(不太确定):
之前电脑里安装了一个 32位的 Visio,但是安装的 office 365 是 64位的,引起注册表冲突
尝试过,但不好用的解决方法:
- 删除32位的 Visio,然后在Programs and Features - Office 365 - Change (联网) 修复 Office 365,重启
最终解决方法,请依次操作下方链接的内容:
0x80040155 - Interface not Registered
Ensure MSOUTL.LIB is Registered (regtlibv12.exe "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE")
p.s 上边文章中出现的 {00062FFF-0000-0000-C000-000000000046} 是 Outlook 的,如果你和我一样遇到的是 Excel 的问题,只需要将其换成 {00020813-0000-0000-C000-000000000046} 即可
【曲线救国的方法】
Excel Application Scope + Read Cell 的搭配是需要安装 Excel 软件的(当然啦,上边的 Issue 就是在安装了Excel的情况下还是出现问题了),如果嫌解决起来太麻烦,还有另外一个曲线救国的方法,就是使用不需要安装 Excel 的 Read Cell 的 activity (这个方法无论如何都不会报错),请注意,虽然这两个方法都叫 Read Cell,但所属的包是不一样
- 在 Excel Application Scope + Read Cell (UiPath.Excel.Activities.ExcelReadCell) 中,excel 的路径path 是写在 Excel Application Scope 的 Properties 中的
- 在 Read Cell (UiPath.Excel.Activities.ReadCell)中,excel 的路径 path 是写在 Read Cell 的 Properties 中的
【参考】
https://github.com/phw198/OutlookGoogleCalendarSync/issues/220
https://forum.uipath.com/t/uipath-dont-seem-to-recognize-excel-on-my-computer/102882