private static Anchor GetAnchor(XLCell cell) { var c = cell.Comment; var cWidth = c.Style.Size.Width; var fcNumber = c.Position.Column - 1; var fcOffset = Convert.ToInt32(c.Position.ColumnOffset * 7.5); var widthFromColumns = cell.Worksheet.Column(c.Position.Column).Width - c.Position.ColumnOffset; var lastCell = cell.CellRight(c.Position.Column - cell.Address.ColumnNumber); while (widthFromColumns <= cWidth) { lastCell = lastCell.CellRight(); widthFromColumns += lastCell.WorksheetColumn().Width; } var lcNumber = lastCell.WorksheetColumn().ColumnNumber() - 1; var lcOffset = Convert.ToInt32((lastCell.WorksheetColumn().Width - (widthFromColumns - cWidth)) * 7.5); var cHeight = c.Style.Size.Height; //c.Style.Size.Height * 72.0; var frNumber = c.Position.Row - 1; var frOffset = Convert.ToInt32(c.Position.RowOffset); var heightFromRows = cell.Worksheet.Row(c.Position.Row).Height - c.Position.RowOffset; lastCell = cell.CellBelow(c.Position.Row - cell.Address.RowNumber); while (heightFromRows <= cHeight) { lastCell = lastCell.CellBelow(); heightFromRows += lastCell.WorksheetRow().Height; } var lrNumber = lastCell.WorksheetRow().RowNumber() - 1; var lrOffset = Convert.ToInt32(lastCell.WorksheetRow().Height - (heightFromRows - cHeight)); return new Anchor { Text = string.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", fcNumber, fcOffset, frNumber, frOffset, lcNumber, lcOffset, lrNumber, lrOffset ) }; }