Example #1
0
        protected override void HandleCore(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary)
        {
            var sheet           = xlsxSpreadsheetDocument.AddSheet(SheetName);
            var columns         = GetColumns(summary);
            var relevantColumns = summary.Table.Columns
                                  .Where(c => columns.Any(sc => string.Equals(c.OriginalColumn.Id, sc.Id, System.StringComparison.OrdinalIgnoreCase)))
                                  .ToArray();

            var headerColIndex = 0;
            var headerRow      = sheet.GetOrCreateRow(1);

            foreach (var col in relevantColumns)
            {
                headerColIndex++;
                headerRow.SetCellValue(headerColIndex, col.Header);
            }

            var rowIndex = 1u;
            var colIndex = 1;

            foreach (var col in relevantColumns)
            {
                foreach (var val in col.Content)
                {
                    var contentRow = sheet.GetOrCreateRow(rowIndex + 1);
                    contentRow.SetCellValue(colIndex, val);
                    rowIndex++;
                }
                colIndex++;
                rowIndex = 1u;
            }
        }
Example #2
0
        protected override void HandleCore(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary)
        {
            var validationErrorsSheet = xlsxSpreadsheetDocument.AddSheet("ValidationErrors");

            foreach (var item in summary.ValidationErrors)
            {
                var row = validationErrorsSheet.AddNewRow();
                row.SetCellValue(1, item.Message);
                row.SetCellValue(2, item.IsCritical.ToString());
            }
        }
Example #3
0
        public void Handle(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary)
        {
            if (xlsxSpreadsheetDocument is null)
            {
                throw new ArgumentNullException(nameof(xlsxSpreadsheetDocument));
            }

            if (summary is null)
            {
                throw new ArgumentNullException(nameof(summary));
            }

            HandleCore(xlsxSpreadsheetDocument, summary);
        }
        protected override void HandleCore(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary)
        {
            var hostingEnvSheet = xlsxSpreadsheetDocument.AddSheet("HostingEnvironment");
            var infos           = GetInfos(summary);

            foreach (var item in infos)
            {
                var row = hostingEnvSheet.AddNewRow();

                var key = row.GetOrCreateCell(1);
                key.SetValue(item.Key);
                var value = row.GetOrCreateCell(2);
                value.SetValue(item.Value);
            }
        }
Example #5
0
        /// <summary>
        /// Creates a xlsx file of the summary.
        /// </summary>
        /// <param name="stream">The output stream.</param>
        /// <param name="summary">The summary.</param>
        /// <param name="consoleLogger">The logger.</param>
        /// <exception cref="ArgumentNullException">Occures when <paramref name="stream"/>, <paramref name="summary"/> or <paramref name="consoleLogger"/> is null.</exception>
        public void CreateSpreadsheetWorkbook(Stream stream, Summary summary, ILogger consoleLogger)
        {
            if (stream is null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            if (summary is null)
            {
                throw new ArgumentNullException(nameof(summary));
            }

            if (consoleLogger is null)
            {
                throw new ArgumentNullException(nameof(consoleLogger), $"Use 'BenchmarkDotNet.Loggers.{nameof(NullLogger.Instance)}' instead.");
            }

            using (var spreadsheetDocument = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook))
            {
                var spreadsheet = new XlsxSpreadsheetDocument(spreadsheetDocument);
                spreadsheet.InitializeWorkbook();
                var handlers = _benchmarkXlsxHandlers.Any() ? _benchmarkXlsxHandlers : MinimalXlsxHandlers;
                foreach (var handler in handlers)
                {
                    try
                    {
                        handler.Handle(spreadsheet, summary);
                    }
                    catch (Exception ex)
                    {
                        consoleLogger.WriteLineError($"Cannot execute {handler.GetType()}: {ex.ToString()}.");
                    }
                }
                spreadsheet.Save();
            }
        }
Example #6
0
 protected abstract void HandleCore(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary);