Я использую библиотеку NReco PivotData для поворота поля даты, чтобы даты отображались в заголовке горизонтально.Это работает хорошо, однако я хотел бы добавить даты, чтобы заполнить пробелы, чтобы результаты были более полными (по умолчанию библиотека показывает только даты, содержащиеся в записи).
Например,если у меня есть в общей сложности 2 записи, первая на 01.01.08, а вторая на 01.10.2008, у меня не будет столбцов для всех дат между ними.
Я получилпутем добавления записей для каждой даты в моем диапазоне с нулевыми значениями, однако это добавляет пустую строку в начало результатов, что не идеально.
В целом, я хотел бы добавить "виртуальный"значения для моего Дата измерения, чтобы можно было получить более полный набор результатов, показывая столбцы для дат, в которых нет записей.
Код
using (var package = new ExcelPackage())
{
var dimensionNames = new string[] { "Id", "Name", "Date", "Hours" };
var aggregator = new SumAggregatorFactory("Hours");
var rows = new Dictionary<string, object>()
{
{ 1, "John Smith", new DateTime(2018, 1, 1), 5 },
{ 2, "John Doe", new DateTime(2018, 1, 10), 10 }
};
var pivotData = new PivotData(dimensionNames, aggregator, rows);
var pivotTable = new PivotTable(new string[] { "Name" }, new string[] { "Date" }, pivotData);
var worksheet = package.Workbook.Worksheets.Add("Report");
var tableWriter = new PivotTableExcelWriter(worksheet);
tableWriter.Write(pivotTable);
package.SaveAs(...);
}