Ejemplo n.º 1
0
 /// <summary>
 /// Saves the XmlDocument into the package at the specified Uri.
 /// </summary>
 /// <param name="uri">The Uri of the component</param>
 /// <param name="xmlDoc">The XmlDocument to save</param>
 internal void SaveWorkbook(Uri uri, XmlDocument xmlDoc)
 {
     Packaging.ZipPackagePart part = this.Package.GetPart(uri);
     if (Workbook.VbaProject == null)
     {
         if (part.ContentType != contentTypeWorkbookDefault)
         {
             part = this.Package.CreatePart(uri, contentTypeWorkbookDefault, Compression);
         }
     }
     else
     {
         if (part.ContentType != contentTypeWorkbookMacroEnabled)
         {
             var rels = part.GetRelationships();
             this.Package.DeletePart(uri);
             part = this.Package.CreatePart(uri, contentTypeWorkbookMacroEnabled);
             foreach (var rel in rels)
             {
                 this.Package.DeleteRelationship(rel.Id);
                 part.CreateRelationship(rel.TargetUri, rel.TargetMode, rel.RelationshipType);
             }
         }
     }
     xmlDoc.Save(part.GetStream(FileMode.Create, FileAccess.Write));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Saves the XmlDocument into the package at the specified Uri.
        /// </summary>
        /// <param name="uri">The Uri of the component</param>
        /// <param name="xmlDoc">The XmlDocument to save</param>
        internal void SaveWorkbook(Uri uri, XmlDocument xmlDoc)
        {
            Packaging.ZipPackagePart part = _package.GetPart(uri);
            if (Workbook.VbaProject == null)
            {
                if (part.ContentType != contentTypeWorkbookDefault)
                {
                    part = _package.CreatePart(uri, contentTypeWorkbookDefault, Compression);
                }
            }
            else
            {
                if (part.ContentType != contentTypeWorkbookMacroEnabled)
                {
                    var rels = part.GetRelationships();
                    _package.DeletePart(uri);
                    part = Package.CreatePart(uri, contentTypeWorkbookMacroEnabled);
                    foreach (var rel in rels)
                    {
                        Package.DeleteRelationship(rel.Id);
                        part.CreateRelationship(rel.TargetUri, rel.TargetMode, rel.RelationshipType);
                    }
                }
            }
            var stream = part.GetStream(FileMode.Create, FileAccess.Write);
            var xr     = new XmlTextWriter(stream, Encoding.UTF8);

            xr.Formatting = Formatting.None;

            xmlDoc.Save(xr);
        }