gpt4 book ai didi

.net - 在 excel 数据透视表中过滤年、月和日的日期时间字段

转载 作者:行者123 更新时间:2023-12-04 20:47:42 24 4
gpt4 key购买 nike

我正在使用 EPPlus创建 Excel 报告。
现在我正在尝试使用 DateTime 创建一个 Pivot 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"))

只能从列表中选择日期时间值,包括小时和分钟,而不是按月 f.e. 分组(见下图)。

enter image description here

这是数据工作表中的过滤器列表。如何在枢轴上得到这个?

enter image description here

先感谢您。

备注 : 我也问过这个 on codeplex没有成功。也许其他人可以提供帮助,即使他没有使用 EPPlus 的经验但知道其他库的类似问题。
我可以将 DateTime 值拆分为每个 sql(年、月、日)的单独列。但我担心枢轴会因如此多的字段而变得更加困惑(我还必须拆分其他日期字段)。
即使在以编程方式生成枢轴方面完全没有经验,有经验的 excel 用户(我不是)会推荐什么?

最佳答案

excel 不能在 PageField 和 RowField 中按我的日期字段分组的原因是因为数据表中有一个未格式化的行。以下几行导致此问题(请参阅我的问题中的完整代码):

Dim range = wsData.Cells(1, colNumber, source.Rows.Count, colNumber)
range.Style.Numberformat.Format = "dd.mm.yyyy"

范围的 Cells-Method 中的参数是:
1. From-Row 2. From-Column 3. To-Row 4. To-Column

因为 LoadFromDataTable以列名作为标题加载 DataTable,最后一行保持未格式化,因此数据透视表无法对日期进行分组。

所以这修复了它:
Dim range = wsData.Cells(2, colNumber, source.Rows.Count + 1, colNumber)

关于.net - 在 excel 数据透视表中过滤年、月和日的日期时间字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com