Я использую EPPlus для создания отчетов Excel. Теперь я пытаюсь создать Pivot с DateTime
PageField
, чтобы пользователь мог отфильтровать период, который он хочет видеть самостоятельно. Но хотя я могу фильтровать это по году, месяцу или дням в соответствующем листе данных по умолчанию, я не могу заставить его работать в Pivot.
Вот что у меня есть:
Dim wsPivot = excel.Workbook.Worksheets.Add("Pivot")
Dim wsData = excel.Workbook.Worksheets.Add("Data")
Dim source = workSheet.GetDataSource
wsData.Cells("A1").LoadFromDataTable(source, True, OfficeOpenXml.Table.TableStyles.Medium6)
For Each col As DataColumn In source.Columns
If col.DataType = GetType(Date) Then
Dim colNumber = col.Ordinal + 1
Dim range = wsData.Cells(1, colNumber, source.Rows.Count, colNumber)
range.Style.Numberformat.Format = "dd.mm.yyyy"
End If
Next
Dim dataRange = wsData.Cells(wsData.Dimension.Address.ToString())
dataRange.AutoFitColumns()
Dim pivotTable = wsPivot.PivotTables.Add(wsPivot.Cells("A3"), dataRange, "Open Contacts")
pivotTable.PageFields.Add(pivotTable.Fields("OwnedAt")) '** this is the date column i want to group **'
pivotTable.PageFields.Add(pivotTable.Fields("Owner"))
pivotTable.RowFields.Add(pivotTable.Fields("Country"))
pivotTable.ColumnFields.Add(pivotTable.Fields("Status"))
pivotTable.DataFields.Add(pivotTable.Fields("Count"))
Можно только выбрать значения даты и времени из списка, включая часы и минуты, а не группировать по месяцам, например (см. Рисунок ниже).
Вот список фильтров из таблицы данных. Как получить это в опоре?
Заранее спасибо.
Примечание. Я также спрашивал об этом о codeplex безуспешно. Может быть, кто-то еще может помочь, даже если у него нет опыта работы с EPPlus, но он знает похожие проблемы с другими библиотеками. Я мог бы разделить значения DateTime на отдельные столбцы для каждого sql (год, месяц, день). Но я боюсь, что сводная таблица станет более запутанной с таким количеством полей (мне также придется разделить другие поля даты). Что бы порекомендовали опытные пользователи Excel (я не), даже не имея опыта программной генерации сводок?