diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs index 7238105..6352ec7 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs @@ -275,7 +275,7 @@ // **** MAYBE FUTURE SHAPE SIZE SUPPORT // var shapes = wsPart.VmlDrawingParts.SelectMany(p => new System.Xml.XmlTextReader(p.GetStream()).Read() - XDocument xdoc = XDocument.Load(wsPart.VmlDrawingParts.First().GetStream(FileMode.Open)); + XDocument xdoc = XDocumentExtensions.Load(wsPart.VmlDrawingParts.First().GetStream(FileMode.Open)); foreach (Comment c in comments) { // find cell by reference @@ -296,7 +296,12 @@ var shape = xdoc.Root.Elements().First(e => (string)e.Attribute("type") == "#_x0000_t202"); LoadShapeProperties(xlComment, shape); - + var insetmode = (string)shape.Attribute("insetmode"); + xlComment.Style.Margins.Automatic = insetmode.Equals("auto"); + + var clientData = shape.Element("ClientData"); + var moveWithCells = clientData.Element("MoveWithCells"); + shape.Remove(); // **** MAYBE FUTURE SHAPE SIZE SUPPORT //var shape = shapes.FirstOrDefault(sh => { diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs index ac235ff..6795c94 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs @@ -214,7 +214,7 @@ //foreach (VmlDrawingPart vmlDrawingPart in vmlDrawingParts) if (vmlDrawingPart != null) { - XDocument xdoc = XDocument.Load(vmlDrawingPart.GetStream(FileMode.Open)); + XDocument 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(); @@ -229,9 +229,9 @@ if (StringExtensions.IsNullOrWhiteSpace(worksheet.LegacyDrawingId)) worksheet.LegacyDrawingId = context.RelIdGenerator.GetNext(RelType.Worksheet); VmlDrawingPart vmlDrawingPartNew = worksheetPart.AddNewPart(worksheet.LegacyDrawingId); - + if (hasShapes) - xdoc.Save(vmlDrawingPartNew.GetStream(System.IO.FileMode.Create)); + xdoc.WriteTo(XmlWriter.Create(vmlDrawingPartNew.GetStream(System.IO.FileMode.Create))); imageParts.ForEach(p => vmlDrawingPartNew.AddPart(p, vmlDrawingPart.GetIdOfPart(p))); legacyParts.ForEach(p => vmlDrawingPartNew.AddPart(p, vmlDrawingPart.GetIdOfPart(p))); @@ -4592,8 +4592,8 @@ Id = shapeId, Type = "#" + shapeTypeId, Style = GetCommentStyle(c), - FillColor = "#" + c.Comment.Style.ColorsAndLines.FillColor.Color.ToHex().Substring(2), - InsetMode = Vml.Office.InsetMarginValues.Auto + FillColor = "#" + c.Comment.Style.ColorsAndLines.FillColor.Color.ToHex().Substring(2)//, + //InsetMode = c.Comment.Style.Margins.Automatic ? Vml.Office.InsetMarginValues.Auto : Vml.Office.InsetMarginValues.Custom }; } @@ -4620,12 +4620,12 @@ sb.Append(margins.Bottom.ToString()); sb.Append("pt;"); - sb.Append("width:"); - sb.Append(c.Style.Size.Width.ToString()); - sb.Append("pt;"); - sb.Append("height:"); - sb.Append(c.Style.Size.Height.ToString()); - sb.Append("pt;"); + //sb.Append("width:"); + //sb.Append(c.Style.Size.Width.ToString()); + //sb.Append("pt;"); + //sb.Append("height:"); + //sb.Append(c.Style.Size.Height.ToString()); + //sb.Append("pt;"); sb.Append("z-index:"); sb.Append(c.ZOrder.ToString()); diff --git a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs index fc0c440..58c779f 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Extensions.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Extensions.cs @@ -6,6 +6,9 @@ using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions; +using System.Xml.Linq; +using System.IO; +using System.Xml; [assembly: CLSCompliantAttribute(true)] namespace ClosedXML.Excel @@ -223,5 +226,24 @@ font.FontFamilyNumbering = sourceFont.FontFamilyNumbering; } } + + public static class XDocumentExtensions + { + public static XDocument Load(Stream stream) + { + using (XmlReader reader = XmlReader.Create(stream)) + { + return XDocument.Load(reader); + } + } + + //public static void SaveToStream(this XDocument document, Stream stream) + //{ + // using (XmlReader reader = XmlReader.Open(stream)) + // { + // return XDocument.Load(reader); + // } + //} + } } diff --git a/ClosedXML/ClosedXML/ClosedXML_Net3.5/ClosedXML_Net3.5.csproj b/ClosedXML/ClosedXML/ClosedXML_Net3.5/ClosedXML_Net3.5.csproj index d4fe958..1f6f470 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Net3.5/ClosedXML_Net3.5.csproj +++ b/ClosedXML/ClosedXML/ClosedXML_Net3.5/ClosedXML_Net3.5.csproj @@ -361,6 +361,9 @@ Excel\IXLWorksheets.cs + + Excel\Misc\XLIdManager.cs + Excel\NamedRanges\IXLNamedRange.cs