diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs index 1d96f18..436cd9b 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Comments/XLComment.cs @@ -33,6 +33,7 @@ Style = new XLDrawingStyle(); Style.Size.Height = 4; // I think this is misused for legacy drawing Style.Size.Width = 2; + SetVisible(); } public String Author { get; set; } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/Drawings/IXLDrawing.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/Drawings/IXLDrawing.cs index f70d90b..ee09244 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/Drawings/IXLDrawing.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/Drawings/IXLDrawing.cs @@ -64,5 +64,8 @@ T SetExtentWidth(Int32 extentWidth); IXLDrawingStyle Style { get; } + + //"position:absolute; margin-left:59.25pt;margin-top:1.5pt;width:96pt;height:60pt;z-index:1; visibility:visible"; + } } diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs index 74f0003..0a6ca14 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Save.cs @@ -144,19 +144,19 @@ context.RelIdGenerator.AddValues(worksheetPart.Parts.Select(p => p.RelationshipId).ToList(), RelType.Worksheet); // delete comment related parts (todo: review) - //worksheetPart.DeletePart(worksheetPart.WorksheetCommentsPart); - //worksheetPart.DeleteParts(worksheetPart.GetPartsOfType()); + worksheetPart.DeletePart(worksheetPart.WorksheetCommentsPart); + worksheetPart.DeleteParts(worksheetPart.GetPartsOfType()); - //if (worksheet.Internals.CellsCollection.GetCells(c => c.HasComment).Any()) - //{ - // WorksheetCommentsPart worksheetCommentsPart = - // worksheetPart.AddNewPart(context.RelIdGenerator.GetNext(RelType.Worksheet)); - // GenerateWorksheetCommentsPartContent(worksheetCommentsPart, worksheet); + if (worksheet.Internals.CellsCollection.GetCells(c => c.HasComment).Any()) + { + WorksheetCommentsPart worksheetCommentsPart = + worksheetPart.AddNewPart(context.RelIdGenerator.GetNext(RelType.Worksheet)); + GenerateWorksheetCommentsPartContent(worksheetCommentsPart, worksheet); - // worksheet.LegacyDrawingId = context.RelIdGenerator.GetNext(RelType.Worksheet); - // VmlDrawingPart vmlDrawingPart = worksheetPart.AddNewPart(worksheet.LegacyDrawingId); - // GenerateVmlDrawingPartContent(vmlDrawingPart, worksheet, context); - //} + worksheet.LegacyDrawingId = context.RelIdGenerator.GetNext(RelType.Worksheet); + VmlDrawingPart vmlDrawingPart = worksheetPart.AddNewPart(worksheet.LegacyDrawingId); + GenerateVmlDrawingPartContent(vmlDrawingPart, worksheet, context); + } GenerateWorksheetPartContent(worksheetPart, worksheet, context); @@ -3312,15 +3312,15 @@ #endregion #region LegacyDrawing - //worksheetPart.Worksheet.RemoveAllChildren(); - //{ - // if (!StringExtensions.IsNullOrWhiteSpace(xlWorksheet.LegacyDrawingId)) - // { - // var previousElement = cm.GetPreviousElementFor(XLWSContentManager.XLWSContents.LegacyDrawing); - // worksheetPart.Worksheet.InsertAfter(new LegacyDrawing { Id = xlWorksheet.LegacyDrawingId }, - // previousElement); - // } - //} + worksheetPart.Worksheet.RemoveAllChildren(); + { + if (!StringExtensions.IsNullOrWhiteSpace(xlWorksheet.LegacyDrawingId)) + { + var previousElement = cm.GetPreviousElementFor(XLWSContentManager.XLWSContents.LegacyDrawing); + worksheetPart.Worksheet.InsertAfter(new LegacyDrawing { Id = xlWorksheet.LegacyDrawingId }, + previousElement); + } + } #endregion } @@ -4391,7 +4391,7 @@ // #endregion - // Limitaion: Most of the shape properties hard coded. + // Limitation: Most of the shape properties hard coded. var rowNumber = c.Address.RowNumber; @@ -4425,10 +4425,17 @@ { Id = shapeId, Type = "#" + shapeTypeId, - Style = "visibility:hidden", + Style = GetCommentStyle(c), FillColor = "#" + c.Comment.Style.ColorsAndLines.FillColor.Color.ToHex().Substring(2), InsetMode = Vml.Office.InsetMarginValues.Auto }; } + + private static StringValue GetCommentStyle(XLCell c) + { + String visibility = c.Comment.Visible ? "visible" : "hidden"; + return "position:absolute; margin-left:59.25pt;margin-top:1.5pt;width:96pt;height:60pt;z-index:1; visibility:" + visibility; + + } } } \ No newline at end of file diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs index 4de56a9..26c1860 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorksheet.cs @@ -157,7 +157,7 @@ } private Double _columnWidth; - //public string LegacyDrawingId; + public string LegacyDrawingId; public Double ColumnWidth {