C # y list de elementos excel cubefield

Estoy tratando de automatizar las testings del complemento de excel que le permite crear algunas entidades de análisis basadas en la definición de la tabla dinámica. Puedo crear una tabla dinámica aleatoria usando objects cubefield (estoy agregando campos aleatorios a filas, columnas y medidas) pero también necesito agregar algunos filters y aquí estoy estancado. ¿Hay alguna forma de get la list de elementos de cubefield? Por ejemplo, cuando tengo un campo de date en la list de filters de todos los días y luego deseo seleccionar algunos días aleatorios para filtrar.

Este es mi código, tal vez no es elegante pero funciona para mi propósito. Básicamente estoy agarrando Cubefields, compruebe si es medida o dimensión y luego estoy configurando su orientación.

public void PivotTableFieldList() { _currentPivotTable = (Excel.PivotTable) _worksheet.PivotTables("PivotTable1"); _currentPivotTable.ManualUpdate = true; List<Excel.CubeField> measureList = new List<Excel.CubeField>(); List<Excel.CubeField> dimensionList = new List<Excel.CubeField>(); foreach (Excel.CubeField field in _currentPivotTable.CubeFields) { if (field.CubeFieldType == Excel.XlCubeFieldType.xlMeasure && field.ShowInFieldList) { measureList.Add(field); } } foreach (Excel.CubeField field in _currentPivotTable.CubeFields) { if (field.CubeFieldType != Excel.XlCubeFieldType.xlMeasure && field.ShowInFieldList) { dimensionList.Add(field); } } Random dimRan=new Random(); dimRan.Next(0, dimensionList.Count); Random mesRan = new Random(); mesRan.Next(0, measureList.Count); dimensionList.ToArray(); measureList.ToArray(); Excel.CubeField[] measureRandomList= new Excel.CubeField[3]; Excel.CubeField[] dimensionRandomList = new Excel.CubeField[6]; for (int i = 0; i < 3; i++) { measureRandomList[i] = measureList[mesRan.Next(1, measureList.Count)]; } for (int i = 0; i < 6; i++) { dimensionRandomList[i] = dimensionList[dimRan.Next(i, dimensionList.Count)]; } for (int i = 0; i < 3; i++) { var field = measureRandomList[i]; var name = measureRandomList[i].Name; field.Orientation= Excel.XlPivotFieldOrientation.xlDataField; } dimensionRandomList[0].Orientation= Excel.XlPivotFieldOrientation.xlRowField; dimensionRandomList[1].Orientation = Excel.XlPivotFieldOrientation.xlColumnField; dimensionRandomList[2].Orientation = Excel.XlPivotFieldOrientation.xlPageField; dimensionRandomList[2].EnableMultiplePageItems=true; //How can I get cubefield items list ? } 

Puede filtrar sus campos de esta manera:

 yourPivotField.CurrentPageName = string.Format("[{0}].[{1}].&[{2}]", SheetName, FieldName, FieldValue); 

Esto establece el filter de su tabla dinámica

establecer el filtro de Excel

No estoy seguro si es esto lo que estabas buscando.