public IList <OpenXMLDocumentPart <Sheet> > Run() { IList <OpenXMLDocumentPart <Sheet> > documentElements = new List <OpenXMLDocumentPart <Sheet> >(); if (SplitExcelObj != null) { foreach (Person person in SplitExcelObj.Person) { if (person.UniversalMarker != null) { foreach (PersonUniversalMarker marker in person.UniversalMarker) { IList <int> result = UniversalExcMarker.GetCrossedSheetElements(marker.ElementId, marker.SelectionLastelementId); foreach (int index in result) { if (string.IsNullOrEmpty(SubdividedParagraphs[index])) { SubdividedParagraphs[index] = person.Email; } else { throw new ElementToPersonPairException(); } } } } } string email = string.Empty; OpenXMLDocumentPart <Sheet> part = new OpenXMLDocumentPart <Sheet>(); var sheetPartsList = WorkBook.Sheets.Elements <Sheet>().ToList(); for (int index = 0; index < sheetPartsList.Count; index++) { if (SubdividedParagraphs[index] != email) { part = new OpenXMLDocumentPart <Sheet>(); part.CompositeElements.Add(sheetPartsList[index] as Sheet); email = SubdividedParagraphs[index]; if (string.IsNullOrEmpty(email)) { part.PartOwner = "undefined"; } else { part.PartOwner = email; } documentElements.Add(part); } else { part.CompositeElements.Add(sheetPartsList[index] as Sheet); } } } return(documentElements); }
public IList <OpenXMLDocumentPart <OpenXmlElement> > Run() { IList <OpenXMLDocumentPart <OpenXmlElement> > documentElements = new List <OpenXMLDocumentPart <OpenXmlElement> >(); if (SplitDocumentObj != null) { foreach (Person person in SplitDocumentObj.Person) { if (person.UniversalMarker != null) { foreach (PersonUniversalMarker marker in person.UniversalMarker) { IList <int> result = UniversalDocMarker.GetCrossedParagraphElements(marker.ElementId, marker.SelectionLastelementId); foreach (int index in result) { if (string.IsNullOrEmpty(SubdividedParagraphs[index])) { SubdividedParagraphs[index] = person.Email; } else { throw new ElementToPersonPairException(); } } } } if (person.TextMarker != null) { } if (person.PictureMarker != null) { } if (person.TableMarker != null) { } } string email = string.Empty; OpenXMLDocumentPart <OpenXmlElement> part = new OpenXMLDocumentPart <OpenXmlElement>(); for (int index = 0; index < DocumentBody.ChildElements.Count; index++) { //check if parts are neighbours then join into one document if (SubdividedParagraphs[index] != email) { part = new OpenXMLDocumentPart <OpenXmlElement>(); part.CompositeElements.Add(DocumentBody.ChildElements[index]); email = SubdividedParagraphs[index]; if (string.IsNullOrEmpty(email)) { part.PartOwner = "undefined"; } else { part.PartOwner = email; } documentElements.Add(part); } else { part.CompositeElements.Add(DocumentBody.ChildElements[index]); } } } return(documentElements); }