I'm using the OpenXml namespace in my application. I'm using this to read the XML within an Excel file. This works fine with certain excel files but on others I get a run time error saying
Invalid Hyperlink: Malformed URI is embedded as a hyperlink in the document.
I get the run time on the following line
using (var spreadsheet =
DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(filePathCopy, true))
I'm not sure why it works for some Excel files and doesn't work on others.
Solution is from Eric White's blog post.
Import OpenXmlPowerTools from Nuget and use it.
This is needed for the function
OpenXmlPowerTools.UriFixer
, unless you want to copy the function from the link.Add the
FixUri()
Function to handle the broken URI's with a new defined URI.Add code to open the document, if the exception occurs it fixes the URI's and re-opens the fixed document.