通过Infragistics组件加载Excel表格的加载方法出现了两个错误。
首先
这是因为Excel-Workbook已损坏。但是如何在不验证其是否损坏的情况下加载工作簿?
第二
这是因为工作表中存在超链接。如何在加载前删除它们?
我的代码:
'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~Load(Stream).html
答案 0 :(得分:0)
我认为你可能会将这种方法用于错误的目的,我没有使用过“Infragistics”的经验。但是,查看您提供的链接,这看起来像是一种将基于Web的流打开为工作簿对象的方法。
您收到的错误消息是,它无法读取您正在调用的file
参数Workbook.Load
。我的猜测是这种方法需要一个URL(例如www.stackoverflow.com),在那里为您提供' test.xls'
根据您提供的代码,您看起来只是想在自己的计算机上打开一个工作簿,为此您可以使用Workbooks.Open
方法,例如:
xls = Workbook.Open(ThisWorkbook.path & "\test.xls")
这将从与包含宏的文件相同的文件夹中打开名为" test.xls"的工作簿,并将其分配给xls
。
答案 1 :(得分:0)
我认为第一个问题的答案是您无法加载损坏的工作簿,因为Excel引擎无法理解该文件。如果您在Excel中打开文件,它可能能够修复它,然后您可以使用excel引擎打开它。
我相信Infragistics Excel引擎支持超链接,您应该向Infragistics提供一个有效excel文件的示例,该文件由于文件中的超链接而有加载问题,供他们查看。
答案 2 :(得分:0)
好的伙计们,谢谢你的回复!答案如下:
第一个问题是:
答案:
- 没有选项可以在不验证工作簿或类似内容的情况下将损坏的工作簿加载到您的应用程序中。你需要处理这个问题 Errormessage和用户必须选择另一个有效的文件!
第二个问题是:
答案:
工作表中有mailto-Links。通常这不是Infragistics的问题。但mailto链接被打破了这样:
mailto:eric@ domain.com
您会看到:mailto-Link中的空格键 - 所以链接是 腐败。由于这个原因,无效的Uri出现了。