/// <summary> /// Saves the worksheet to the package. For internal use only. /// </summary> internal void Save() // Worksheet Save { #region Delete the printer settings component (if it exists) // we also need to delete the relationship from the pageSetup tag var pageSetup = WorksheetXml.SelectSingleNode("//d:pageSetup", NameSpaceManager); if (pageSetup != null) { var attr = (XmlAttribute)pageSetup.Attributes.GetNamedItem("id", ExcelPackage.schemaRelationships); if (attr != null) { var relID = attr.Value; // first delete the attribute from the XML pageSetup.Attributes.Remove(attr); // get the URI var relPrinterSettings = Part.GetRelationship(relID); var printerSettingsUri = new Uri("/xl" + relPrinterSettings.TargetUri.ToString().Replace("..", ""), UriKind.Relative); // now delete the relationship Part.DeleteRelationship(relPrinterSettings.Id); // now delete the part from the package xlPackage.Package.DeletePart(printerSettingsUri); } } #endregion // save the header & footer (if defined) if (_headerFooter != null) { HeaderFooter.Save(); } // replace the numeric Cell IDs we inserted with AddNumericCellIDs() ReplaceNumericCellIDs(); // save worksheet to package var partPack = xlPackage.Package.GetPart(WorksheetUri); WorksheetXml.Save(partPack.GetStream(FileMode.Create, FileAccess.Write)); xlPackage.WriteDebugFile(WorksheetXml, @"xl\worksheets", "sheet" + SheetID + ".xml"); //clear field _worksheetXml becouse need rebuild column number tag in columns _worksheetXml = null; }
/// <summary> /// Saves the worksheet to the package. For internal use only. /// </summary> protected internal void Save() // Worksheet Save { #region Delete the printer settings component (if it exists) // we also need to delete the relationship from the pageSetup tag var pageSetup = WorksheetXml.XPathSelectElement("//d:pageSetup", NameSpaceManager); if (pageSetup != null) { XAttribute attr = pageSetup.Attribute(ExcelPackage.schemaRelationships + "id"); if (attr != null) { string relID = attr.Value; // first delete the attribute from the XML attr.Remove(); // get the URI PackageRelationship relPrinterSettings = Part.GetRelationship(relID); Uri printerSettingsUri = new Uri("/xl" + relPrinterSettings.TargetUri.ToString().Replace("..", ""), UriKind.Relative); // now delete the relationship Part.DeleteRelationship(relPrinterSettings.Id); // now delete the part from the package xlPackage.Package.DeletePart(printerSettingsUri); } } #endregion if (_worksheetXml != null) { // save the header & footer (if defined) if (_headerFooter != null) { HeaderFooter.Save(); } // replace the numeric Cell IDs we inserted with AddNumericCellIDs() ReplaceNumericCellIDs(); // save worksheet to package PackagePart partPack = xlPackage.Package.GetPart(WorksheetUri); WorksheetXml.Save(partPack.GetStream(FileMode.Create, FileAccess.Write)); xlPackage.WriteDebugFile(WorksheetXml, @"xl\worksheets", "sheet" + SheetID + ".xml"); } }