/// <summary> /// Adds column group from model. /// </summary> /// <param name="worksheet">The worksheet.</param> /// <param name="column">The column header definition.</param> /// <returns> /// Returns a new <see cref="T:OfficeOpenXml.ExcelRange" /> which contains de column header representation. /// </returns> /// <exception cref="T:System.ArgumentNullException">The value specified is <c>null</c>.</exception> public static void AddColumnGroupFromModel(this ExcelWorksheet worksheet, ColumnHeaderModel column) { SentinelHelper.ArgumentNull(worksheet); SentinelHelper.ArgumentNull(column); var group = column.Group; var showGroup = group.Show == YesNo.Yes; if (!showGroup) { return; } var fields = column.Owner.Parent.Fields; var fromField = fields[column.From]; var toField = fields[column.To]; var from = fields.IndexOf(fromField) + 1; var to = fields.IndexOf(toField) + 1; for (var i = from; i <= to; i++) { worksheet.Column(i).OutlineLevel = group.Level; worksheet.Column(i).Collapsed = group.Collapsed == YesNo.Yes; } }
/// <summary> /// Returns a new range which represents the column header. /// </summary> /// <param name="table">The table.</param> /// <param name="row">The current row.</param> /// <param name="column">The column header definition.</param> /// <param name="offset">The offset.</param> /// <returns> /// Returns a new <see cref="T:Novacode.Cell" /> which contains de column header representation. /// </returns> /// <exception cref="T:System.ArgumentNullException">The value specified is <c>null</c>.</exception> public static Cell GetRangeFromModel(this Table table, int row, ColumnHeaderModel column, int offset) { SentinelHelper.ArgumentNull(table); SentinelHelper.ArgumentNull(column); var fields = column.Owner.Parent.Fields; var fromField = fields[column.From]; var toField = fields[column.To]; var from = fields.IndexOf(fromField); var to = fields.IndexOf(toField); from = from - offset; to = to - offset; var currentRow = table.Rows[row]; currentRow.MergeCells(from, to); return(table.Rows[row].Cells[from]); }
/// <summary> /// Returns a new range which represents the column header. /// </summary> /// <param name="worksheet">The worksheet.</param> /// <param name="row">The current row.</param> /// <param name="column">The column header definition.</param> /// <returns> /// Returns a new <see cref="T:OfficeOpenXml.ExcelRange" /> which contains de column header representation. /// </returns> /// <exception cref="T:System.ArgumentNullException">The value specified is <c>null</c>.</exception> public static ExcelRange GetRangeFromModel(this ExcelWorksheet worksheet, int row, ColumnHeaderModel column) { SentinelHelper.ArgumentNull(worksheet); SentinelHelper.ArgumentNull(column); var fields = column.Owner.Parent.Fields; var fromField = fields[column.From]; var toField = fields[column.To]; var from = fields.IndexOf(fromField) + 1; var to = fields.IndexOf(toField) + 1; var range = ExcelCellBase.GetAddress(row, from, row, to); var cell = worksheet.Cells[range]; return(cell); }