public void SetHeaderColumnNumberStyle(TgColumn gridColumn)
        {
            var cell = _worksheet.Cells[_row + 1, gridColumn.PositionInSheet];

            cell.Style.SetStyle(gridColumn.HeaderStyle ?? _defaultColumnOptions.HeaderStyle);
            cell.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
        }
Exemple #2
0
        protected override void PopulateData()
        {
            TgColumn groupingTgColumn = GetGroupingTgColumn();
            int      row            = GridOptions.HeaderRowsCount + GridOptions.TableTopPosition;
            int      groupIncrement = 1;

            foreach (var groupItems in base.GroupedCollection)
            {
                if (GridOptions.PrintRowNumbers)
                {
                    int col = GridOptions.RowNumberColumn.PositionInSheet;
                    MergeGroupRows(row, col, groupItems.Count());
                    Worksheet.Cells[row, col].Value = groupIncrement++;
                }

                int groupingColumnOrder = groupingTgColumn.PositionInSheet;
                MergeGroupRows(row, groupingColumnOrder, groupItems.Count());

                foreach (var item in groupItems)
                {
                    foreach (var gridColumn in GridOptions.Columns)
                    {
                        var cellValue = gridColumn.PropertyInfo.GetValue(item, null);
                        Worksheet.Cells[row, gridColumn.PositionInSheet].Value = cellValue;
                    }
                    row++;
                }

                base.PrintSummary(row - groupItems.Count(), row - 1);
                if (GridOptions.HasColumnSummary)
                {
                    row++;
                }
            }
        }
        public void PrintSummary(TgColumn gridColumn, int fromRow, int toRow)
        {
            var    aggFunction       = gridColumn.Summary.AggregateFunction;
            var    aggFunctionName   = aggFunction.Type.GetDisplayName();
            string groupBeginAddress = _worksheet.Cells[fromRow, gridColumn.PositionInSheet].Address;
            string groupEndAddress   = _worksheet.Cells[toRow, gridColumn.PositionInSheet].Address;

            var cell = _worksheet.Cells[toRow + 1, gridColumn.PositionInSheet];

            cell.Style.SetStyle(gridColumn.Summary.Style);
            cell.Style.Locked = true;

            cell.Formula = aggFunction.HasCondition
                ? $"{aggFunctionName}({groupBeginAddress}:{groupEndAddress},\"{aggFunction.Condition}\")"
                : $"{aggFunctionName}({groupBeginAddress}:{groupEndAddress})";
        }
        public void SetHeaderText(TgColumn tgColumn)
        {
            var cell = _worksheet.Cells[_row, tgColumn.PositionInSheet];

            cell.Value = tgColumn.Header ?? tgColumn.PropertyName;
        }