如何解决OpenXML 添加外部链接
我有包含两个外部链接的文件,我需要再添加一个。通常只需在 Excel 中创建我需要的内容,保存文件并使用生产力工具重新打开它并找到反映的代码,但它现在不起作用。当我使用反射代码时,Excel 无法正确读取文件并在部分 /xl/externalReferences/externalReference3.xml 中引发错误。
ExternalWorkbookPart part2 = workbookPart.AddNewPart<ExternalWorkbookPart>("rId5");
ExternalRelationship externalRelationship = part2.AddExternalRelationship("http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath",new System.Uri("/AAA.xlsx",System.UriKind.Relative),"rId1");
ExternalLink externalLink1 = new ExternalLink();
ExternalBook externalBook1 = new ExternalBook() { Id = "rId1" };
//externalBook1.AddNamespaceDeclaration("r","http://schemas.openxmlformats.org/officeDocument/2006/relationships");
SheetNames sheetNames1 = new SheetNames();
SheetName sheetName1 = new SheetName() { Val = "Sheet1" };
sheetNames1.Append(sheetName1);
SheetDataSet sheetDataSet1 = new SheetDataSet();
ExternalSheetData externalSheetData1 = new ExternalSheetData() { SheetId = (UInt32Value)0U };
ExternalRow externalRow1 = new ExternalRow() { RowIndex = (UInt32Value)2U };
ExternalCell externalCell1 = new ExternalCell() { CellReference = "A2",DataType = CellValues.String };
Xstring xstring1 = new Xstring();
xstring1.Text = "link test";
externalCell1.Append(xstring1);
externalRow1.Append(externalCell1);
externalSheetData1.Append(externalRow1);
sheetDataSet1.Append(externalSheetData1);
externalBook1.Append(sheetNames1);
externalBook1.Append(sheetDataSet1);
externalLink1.Append(externalBook1);
part2.ExternalLink = externalLink1;
ExternalReferences externalReferences = workbook.ExternalReferences;
ExternalReference externalReference = new ExternalReference() { Id = "rId5" };
externalReferences.Append(externalReference);
我不知道错误在哪里,但可能没有正确添加外部链接。当我解压缩由代码创建的 xlsx 文件时,他只有 2 个 ExternalLinks 和 1 个 ExternalReference。但在 Excel 中创建的参考文件有 3 个 ExternalLinks 和 0 个 ExternalReference。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。