/// <summary> /// Updates the embedded object. /// </summary> /// <returns></returns> protected string UpdateEmbeddedObject() { EmbeddedPackagePart embeddedPackagePart = chartPart.EmbeddedPackagePart; string sheetName = string.Empty; if (embeddedPackagePart != null) { using (SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Open(embeddedPackagePart.GetStream(), true)) { SharedStringTablePart sharedStringTablePart; SpreadSheet.Sheet sheet = spreadsheetDoc.WorkbookPart.Workbook.Sheets.FirstOrDefault() as SpreadSheet.Sheet; string sheetId = sheet.Id; sheetName = sheet.Name; WorksheetPart wsp = (WorksheetPart)spreadsheetDoc.WorkbookPart.Parts.Where(pt => pt.RelationshipId == sheetId).FirstOrDefault().OpenXmlPart; SpreadSheet.SheetData sheetData = wsp.Worksheet.Elements <SpreadSheet.SheetData>().FirstOrDefault(); if (spreadsheetDoc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().Count() > 0) { sharedStringTablePart = spreadsheetDoc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().First(); if (sharedStringTablePart.SharedStringTable != null) { sharedStringTablePart.SharedStringTable.RemoveAllChildren <SpreadSheet.SharedStringItem>(); } } else { sharedStringTablePart = spreadsheetDoc.WorkbookPart.AddNewPart <SharedStringTablePart>(); } sheetData.RemoveAllChildren <SpreadSheet.Row>(); UpdateEmbeddedObject(sheetData, sharedStringTablePart); wsp.Worksheet.Save(); } } return(sheetName); }