Excel 보고서를 만들 때 EPPlus을 사용하고 있습니다. 이제 사용자가 직접보고 싶은 기간을 필터링 할 수 있도록 DateTime
PageField
의 피벗을 만들려고합니다. 그러나 내가 기본, 데이터 워크 시트에 따라 년, 월 또는 일 동안 이것을 필터링 할 수 있지만, 나는 피벗에서 작동하지 않습니다. 여기 Excel 피벗에서 년, 월, 일의 DateTime 필드를 필터링하십시오.
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"))
. 여기
참고 : 나는 또한 이것을 on codeplex에게 요청했습니다. EPPlus에 대한 경험이 없지만 다른 라이브러리와 비슷한 문제를 알고 있더라도 다른 사람이 도울 수 있습니다. DateTime 값을 SQL 당 (연도, 월, 일) 별개의 열로 나눌 수 있습니다. 그러나 피벗은 너무 많은 분야 (나는 또한 다른 날짜 필드를 분할해야 할 것입니다)와 더 혼란 스러울 것입니다 두려워. 프로그래밍 방식으로 피벗을 생성하는 데 전혀 경험이 없어도 경험이 풍부한 사용자는 무엇이 좋을까요?