Infragistics Excel导入Loadoptions

Load-Method通过Infragistics组件加载Excel表单有两个错误。

第一:

  • 指定的stream或文件不包含有效的工作簿。 参数名称:文件名称

这是因为Excel-Workbook已损坏。 但是,如何加载工作簿而不validation它是否被破坏?

第二:

  • 无效的URI:主机名不能被分析

这是因为工作表中有超链接。 如何在加载之前删除它们?

我的代码:

'stuff... Dim file as String = "test.xls" xls = New Workbook() xls = Workbook.Load(file) 'stuff... 

来自Infragistics的页面不是很有帮助: http : //help.infragistics.com/Help/Doc/WinForms/2012.2/CLR4.0/html/Infragistics4.Documents.Excel.v12.2~Infragistics.Documents.Excel.Workbook 〜负荷(stream)的.html

我认为你可能是用这个方法出于错误的目的,我没有使用'Infragistics'的经验,但是看着你提供的链接看起来像一个打开基于Web的stream作为工作簿对象的方法。

您收到的错误消息是说它无法读取您正在调用Workbook.Loadfile参数。 我的猜测是这个方法需要一个URL(例如www.stackoverflow.com),在你提供'test.xls'

根据您提供的代码,您看起来只是打算在自己的机器上打开一个工作簿,为此可以使用Workbooks.Open方法,例如:

 xls = Workbook.Open(ThisWorkbook.path & "\test.xls") 

这将从与包含您的macros的文件相同的文件夹中打开名为“test.xls”的工作簿,并将其分配给xls

我相信第一个问题的答案是您无法加载损坏的工作簿,因为Excel引擎无法理解该文件。 如果你在Excel中打开文件,它可能会修复它,然后你可以用Excel引擎打开它。

我相信Infragistics Excel引擎支持超链接,您应该为Infragistics提供一个有效的Excel文件样本,这个样本文件中的超链接会导致加载问题,供他们查看。

好吧,谢谢你的回应! 回答如下:

第一个问题是:

  • 指定的stream或文件不包含有效的工作簿。 参数名称:文件名称

回答:

  • 没有选项将损坏的工作簿加载到您的应用程序,而无需validation工作簿或类似的东西。 你需要处理这个错误消息,用户必须select另一个有效的文件!

第二个问题是:

  • 无效的URI:主机名不能被分析

回答:

  • 工作表中有mailto-Links。 通常这不是Infragistics的问题。 但是mailto链接是这样被打破的:

     mailto:eric@ domain.com 

  • 您会看到:该mailto-Link中的空格键 – 所以链接已损坏。 因为这个,无效的Uri出现了。