本文整理汇总了C#中DocumentFormat.OpenXml.Packaging.WorksheetPart.ChangeIdOfPart方法的典型用法代码示例。如果您正苦于以下问题:C# WorksheetPart.ChangeIdOfPart方法的具体用法?C# WorksheetPart.ChangeIdOfPart怎么用?C# WorksheetPart.ChangeIdOfPart使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentFormat.OpenXml.Packaging.WorksheetPart
的用法示例。
在下文中一共展示了WorksheetPart.ChangeIdOfPart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DeleteComments
private void DeleteComments(WorksheetPart worksheetPart, XLWorksheet worksheet, SaveContext context)
{
// We have the comments so we can delete the comments part
worksheetPart.DeletePart(worksheetPart.WorksheetCommentsPart);
var vmlDrawingPart = worksheetPart.VmlDrawingParts.FirstOrDefault();
// Only delete the VmlDrawingParts for comments.
if (vmlDrawingPart != null)
{
var xdoc = XDocumentExtensions.Load(vmlDrawingPart.GetStream(FileMode.Open));
//xdoc.Root.Elements().Where(e => e.Name.LocalName == "shapelayout").Remove();
xdoc.Root.Elements().Where(
e => e.Name.LocalName == "shapetype" && (string)e.Attribute("id") == @"_x0000_t202").Remove();
xdoc.Root.Elements().Where(
e => e.Name.LocalName == "shape" && (string)e.Attribute("type") == @"#_x0000_t202").Remove();
var imageParts = vmlDrawingPart.ImageParts.ToList();
var legacyParts = vmlDrawingPart.LegacyDiagramTextParts.ToList();
var rId = worksheetPart.GetIdOfPart(vmlDrawingPart);
worksheet.LegacyDrawingId = rId;
worksheetPart.ChangeIdOfPart(vmlDrawingPart, "xxRRxx"); // Anything will do for the new relationship id
// we just want it alive enough to create the copy
var hasShapes = xdoc.Root.Elements().Any(e => e.Name.LocalName == "shape" || e.Name.LocalName == "group");
VmlDrawingPart vmlDrawingPartNew = null;
var hasNewPart = (imageParts.Count > 0 || legacyParts.Count > 0 || hasShapes);
if (hasNewPart)
{
vmlDrawingPartNew = worksheetPart.AddNewPart<VmlDrawingPart>(rId);
using (var writer = new XmlTextWriter(vmlDrawingPartNew.GetStream(FileMode.Create), Encoding.UTF8))
{
writer.WriteRaw(xdoc.ToString());
}
imageParts.ForEach(p => vmlDrawingPartNew.AddPart(p, vmlDrawingPart.GetIdOfPart(p)));
legacyParts.ForEach(p => vmlDrawingPartNew.AddPart(p, vmlDrawingPart.GetIdOfPart(p)));
}
worksheetPart.DeletePart(vmlDrawingPart);
if (hasNewPart && rId != worksheetPart.GetIdOfPart(vmlDrawingPartNew))
worksheetPart.ChangeIdOfPart(vmlDrawingPartNew, rId);
}
}