private void GetReportInfo(ISheetBuilder sb, string reportName, Run run, DateTime reportDate)
 {
     sb.Column(1, cb => cb.Width(20))
     .Column(2, cb => cb.Width(35))
     .Block(bb =>
     {
         bb.Add("Report Date").Style(GamePlanReportStyles.HeaderStyle.Name);
         bb.Add(reportDate.ToString(DateTimeFormat)).Style(GamePlanReportStyles.HeaderStyle.Name);
     })
     .Block(bb =>
     {
         bb.Add("Report Name").Style(GamePlanReportStyles.LightHeaderStyle.Name);
         bb.Add(reportName).Style(GamePlanReportStyles.LightHeaderStyle.Name);
     })
     .Block(bb =>
     {
         bb.Add("Run Name").Style(GamePlanReportStyles.LightHeaderStyle.Name);
         bb.Add(run.Description).Style(GamePlanReportStyles.LightHeaderStyle.Name);
     })
     .Block(bb =>
     {
         bb.Add("Run Id").Style(GamePlanReportStyles.LightHeaderStyle.Name);
         bb.Add(run.Id).Style(GamePlanReportStyles.LightHeaderStyle.Name);
     });
     if (run.ExecuteStartedDateTime.HasValue)
     {
         sb.Block(bb =>
         {
             bb.Add("Run Execute Date").Style(GamePlanReportStyles.LightHeaderStyle.Name);
             bb.Add(run.ExecuteStartedDateTime.Value.ToString(DateTimeFormat)).Style(GamePlanReportStyles.LightHeaderStyle.Name);
         });
     }
 }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (models, sheetDefinition, doc) =>
            {
                originalFunc(models, sheetDefinition, doc);
                var sheetName = sheetDefinition.Name;
                var sheetData = doc.GetSheetDataByName(sheetName);

                var firstRow = sheetData.Descendants<Row>().FirstOrDefault();
                var numberOfColumns = firstRow == null ? 0 : firstRow.Descendants<Cell>().Count();

                //No data, no filter will be created
                if (numberOfColumns == 0) return;

                var filter = new AutoFilter
                             {
                                 Reference =
                                     string.Format("{0}1:{1}1", GetColumnName(1), GetColumnName(numberOfColumns))
                             };

                var worksheet = doc.GetWorksheetByName(sheetName);
                worksheet.AppendChild(filter);
            };

            return target;
        }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (objects, sheetDefinition, doc) =>
            {
                originalFunc(objects, sheetDefinition, doc);

                var sheetData = doc.GetSheetDataByName(sheetDefinition.Name);
                var headerRow = sheetData.Descendants<Row>().FirstOrDefault();
                if (headerRow == null) return;
                var index = 0;
                var cells = headerRow.Descendants<Cell>().ToList();
                foreach (var colDef in sheetDefinition.ColumnDefinitions)
                {
                    if (colDef.Header != null && index < cells.Count)
                    {
                        var cell = cells[index];
                        var value = cell.CellValue.InnerText;
                        cell.CellValue = new CellValue(_localization.GetLocalString(value));
                    }
                    index ++;
                }
            };

            return target;
        }
 private void SetColumnsWidthForRunReport(ISheetBuilder sb, int columnsCount)
 {
     sb.Column(1, cb => cb.Width(55));
     for (int i = 1; i < columnsCount; i++)
     {
         sb.Column(i + 1, cb => cb.Width(2.5));
     }
 }
 private void GetSmoothFailures(ISheetBuilder sheetBuilder, List <SmoothFailureExtendedModel> smoothFailures)
 {
     sheetBuilder.Freeze(1, 2)
     .DataContent(smoothFailures, GetSmoothFailureExportConfig().BuildConfiguration())
     .AutoFitColumns(1, 21);
     if (smoothFailures.Count == 0)
     {
         WriteNoDataRow(sheetBuilder, 21);
     }
 }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (models, sheetDefinition, doc) =>
            {
                originalFunc(models, sheetDefinition, doc);

                AddColumns(doc, sheetDefinition.Name);
            };
            return target;
        }
 private void WriteGrid(ISheetBuilder sb, ExcelReportGrid grid)
 {
     grid.HeaderRows.ForEach(row => WriteRow(sb, grid, row));
     if (grid.HasData)
     {
         grid.BodyRows.ForEach(row => WriteRow(sb, grid, row));
     }
     else
     {
         WriteNoDataRow(sb, grid.MaxColumnCount);
     }
 }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (objects, sheetDefinition, doc) =>
            {
                originalFunc(objects, sheetDefinition, doc);

                var worksheet = doc.GetWorksheetByName(sheetDefinition.Name);
                worksheet.AddMdsolAttribute("version", AssemblyVersion);
            };

            return target;
        }
        private void WriteNoDataRow(ISheetBuilder sb, int maxColumnCount)
        {
            var cell = new ExcelReportCell
            {
                Value     = "No data",
                Alignment = ExcelHorizontalAlignment.Center,
                StyleName = GamePlanReportStyles.EmptyCellStyle.Name
            };

            sb.Block(bb =>
            {
                writeCell(bb, cell, maxColumnCount);
            });
        }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (models, sheetDefinition, doc) =>
            {
                originalFunc(models, sheetDefinition, doc);
                var headers = sheetDefinition.ColumnDefinitions.Select(x => x.Header ?? x.PropertyName);
                var headerRow = CreateHeaderRow(headers);

                var sheetData = doc.GetSheetDataByName(sheetDefinition.Name);
                sheetData.InsertAt(headerRow, 0);
            };
            return target;
        }
 private void WriteRow(ISheetBuilder sb, ExcelReportGrid grid, ExcelReportRow row)
 {
     sb.Block(bb =>
     {
         for (var i = 0; i < row.Cells.Count; i++)
         {
             var cell    = row.Cells[i];
             var colSpan = 1;
             if (i > 0)
             {
                 colSpan = (grid.MaxColumnCount - 1) / (row.Cells.Count - 1);
             }
             writeCell(bb, cell, colSpan);
         }
     });
 }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (models, sheetDefinition, doc) =>
            {
                originalFunc(models, sheetDefinition, doc);
                var styleIndex = doc.GetStyleIndex(_styleName);
                var sheetData = doc.GetSheetDataByName(sheetDefinition.Name);
                var cells = sheetData.Descendants<Cell>();
                foreach (var cell in cells)
                {
                    cell.StyleIndex = styleIndex;
                }
            };

            return target;
        }
        public ISheetBuilder Decorate(ISheetBuilder target)
        {
            var originalFunc = target.BuildSheet;
            target.BuildSheet = (models, sheetDefinition, doc) =>
            {
                originalFunc(models, sheetDefinition, doc);

                var validations = AddDataValidations(sheetDefinition.ColumnDefinitions);

                var worksheet = doc.GetWorksheetByName(sheetDefinition.Name);
                var node = worksheet.GetFirstChild<DataValidations>();
                if (!validations.Any()){ return; }
                    
                if (node == null)
                {
                    node = new DataValidations();
                    worksheet.Append(node);
                }
                node.Append(validations);
            };
            return target;
        }
Exemple #14
0
 public void AutoFit(List <int> columns, ISheetBuilder sheetBuilder) =>
 columns?.ForEach(column => sheetBuilder.Column(column, columnBuilder => columnBuilder.AutoFitColumn()));
Exemple #15
0
 public void AutoFitAll(ISheetBuilder sheetBuilder) => AutoFit(AllColumns, sheetBuilder);