public byte[] GenerateReport(List <object> itemList, GridConfigurationBase gridConfig) { List <GridColumnBase> columnList = gridConfig.GridColumnBases.Where(x => !x.KeyColumn).ToList(); this.Columns = GetColumns(columnList.Count()); using (var workbook = new XLWorkbook()) { IXLWorksheet ws = workbook.Worksheets.Add("Info General"); CreateHeader(columnList, ws); foreach (object obj in itemList) { int file = itemList.IndexOf(obj) + 2; foreach (GridColumnBase cName in columnList) { int column = columnList.IndexOf(cName); var value = GridColumnBase.GetKeyValue(obj, cName.PropertyInfo); ws.Cell($"{Columns[column]}{file}") .Value = value; } } ws.Columns().AdjustToContents(); using (var ms = new MemoryStream()) { workbook.SaveAs(ms); return(ms.ToArray()); } } }
public CellContexMenuOption(GridColumnBase gridColumn, object context, string urlFolder) { GridColumn = gridColumn; RowValues = context; OneItemList = new List <object>(); OneItemList.Add(RowValues); string keyValue = GridColumnBase.GetKeyValue(context, context.GetType().GetProperty(gridColumn.KeyColumnName)).ToString(); gridColumn.InitializeContextMenuOptions(keyValue, urlFolder); }