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; } }
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()); } }
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); } }
/// <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(); } }
protected abstract void HandleCore(XlsxSpreadsheetDocument xlsxSpreadsheetDocument, Summary summary);