我有包含两个外部链接的文件,我需要再添加一个。通常只需在 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。