Cra*_*her 11 c# openxml excel-addins
我在我的应用程序中使用 OpenXml 命名空间。我正在使用它来读取 Excel 文件中的 XML。这适用于某些 excel 文件,但在其他文件上我收到运行时错误说
无效的超链接:格式错误的 URI 作为超链接嵌入到文档中。
我在下一行得到运行时间
using (var spreadsheet =
DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(filePathCopy, true))
Run Code Online (Sandbox Code Playgroud)
我不确定为什么它适用于某些 Excel 文件而不适用于其他文件。
Nic*_*814 11
从 Nuget 导入 OpenXmlPowerTools 并使用它。
using OpenXmlPowerTools;
Run Code Online (Sandbox Code Playgroud)
所需的方法是OpenXmlPowerTools.UriFixer.FixInvalidUri,或者您可以UriFixer从链接中复制该类。
添加FixUri()函数以使用新定义的 URI 处理损坏的 URI。
private static Uri FixUri(string brokenUri)
{
return new Uri("http://broken-link/");
}
Run Code Online (Sandbox Code Playgroud)
添加代码以打开文档,如果发生异常,它会修复 URI 并重新打开已修复的文档。
WordprocessingDocument wDoc;
try
{
using (wDoc = WordprocessingDocument.Open(newFileName, true))
{
//Try do something
}
}
catch (OpenXmlPackageException e)
{
if (e.ToString().Contains("Invalid Hyperlink"))
{
using (FileStream fs = new FileStream(newFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
//Fix problematic URI's
UriFixer.FixInvalidUri(fs, brokenUri => FixUri(brokenUri));
}
using (wDoc = WordprocessingDocument.Open(newFileName, true))
{
//Do something without error
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5079 次 |
| 最近记录: |