You are on page 1of 21

PHPExcel Autofiltro referencia Developer Documentation

1. Contenido
PHPExcel Autofiltro referencia Developer Documentation 1. Contenido 2. Los Autofiltros 3. Establecer un rea de Autofiltro en una hoja de clculo 4. Expresiones Autofiltro 4.1. Filtros simples 4.1.1. Emparejar los espacios en blanco 4.2. DateGroup filtros 4.3. Filtros personalizados 4.4. Filtros dinmicos 4.5. Superiores diez filtros 5. Ejecutar un Autofiltro 5.1. Aplicar el filtro 5.2. Mostrando las filas filtradas 6. Clasificacin Autofiltro

2. Autofiltros
Cada hoja de clculo en un libro de Excel puede contener una gama nica de Autofiltro. Datos filtrados muestran slo las filas que cumplen criterios que usted especifique y esconde las filas que no desea que aparezca. Puede filtrar por ms de una columna: los filtros son aditivos, lo que significa que cada filtro adicional se basa en el filtro actual y reduce an ms el subconjunto de datos.

Cuando se aplica un Autofiltro a un rango de celdas, la primera fila de un rango de Autofiltro ser la fila de encabezado, que muestra los iconos de la lista desplegable de Autofiltro. No es parte de los datos reales autofiltrado. Todas las filas posteriores son los datos autofiltrado. As una gama de Autofiltro siempre debe contener la fila de encabezado y una o ms filas de datos (una fila de datos es bastante insignificante), pero PHPExcel realmente no detendr especificando una gama sin sentido: es que como el desarrollador para evitar tales errores. Para determinar si se aplica un filtro, nota el icono en el encabezado de columna. Una flecha desplegable ( ) significa que filtrado es activado pero no aplicado. En MS Excel, cuando pasa el cursor sobre el encabezado de una columna con filtrado habilitado pero no aplicada, una punta de la pantalla muestra el texto de la celda para la primera fila de esa columna y el mensaje "(Mostrar todos)".

Botn de un filtro ( ) significa que se aplica un filtro de. Cuando pasa el cursor sobre el encabezado de una columna filtrada, una punta de la pantalla muestra el filtro aplicado a la columna, tales como "Equivale a un glbulo rojo color" o "Larger than 150".

3. Establecer un rea de Autofiltro en una hoja de clculo


Para establecer un Autofiltro en un rango de celdas.
$objPHPExcel -> getActiveSheet() -> setAutoFilter('A1:E20');

La primera fila de un rango de Autofiltro ser la fila de encabezado, que muestra los iconos de la lista desplegable de Autofiltro. No es parte de los datos reales autofiltrado. Todas las filas posteriores son los datos autofiltrado. As una gama de Autofiltro siempre debe contener la fila de encabezado y una o ms filas de datos (una fila de datos es bastante insignificante, pero PHPExcel realmente no detendr especificando una gama sin sentido: es que como el desarrollador para evitar tales errores. Si desea configurar la hoja entera como una regin de Autofiltro
$objPHPExcel -> getActiveSheet() -> setAutoFilter () $objPHPExcel -> getActiveSheet() -> calculateWorksheetDimension() );

Esto permite que los filtros, pero en realidad no aplica ningn filtro.

4. Expresiones de Autofiltro
PHPEXcel puntos 1.7.8 introducido la capacidad de realmente crear, leer y escribir expresiones de filtro; al principio solamente para archivos Excel2007, pero versiones posteriores esto se extendern a otros formatos. Para aplicar una expresin de filtro a una gama de Autofiltro, primero necesita identificar columna que vas a aplicar este filtro a.
$autoFilter = $objPHPExcel - > getActiveSheet() -> getAutoFilter(); $columnFilter = $autoFilter -> getColumn('C');

Devuelve un objeto column Autofiltro, y entonces puede aplicar filtros a la columna. Hay un nmero de diferentes tipos de expresiones de Autofiltro. Los ms comnmente utilizados son: Filtros simples Filtros DateGroup Filtros personalizados Filtros dinmicos Top diez filtros Estos tipos son mutuamente excluyentes dentro de una sola columna. No debe mezclar los diferentes tipos de filtro en la misma columna. PHPExcel no activamente le impedir hacer esto, pero los resultados son impredecibles.

4.1. Filtros simples


En MS Excel, filtros simples son una lista desplegable de todos los valores utilizados en esa columna, y el usuario puede seleccionar cules quieren mostrar y los que quieren ocultar por tictac y deshabilitando las casillas de verificacin junto a cada opcin. Cuando se aplica el filtro, se mostrarn las filas que contienen las entradas marcadas, se ocultarn las filas que no contienen esos valores.

Para crear una expresin de filtro, tenemos que empezar por identificar el tipo de filtro. En este caso, vamos a especificar que este filtro es un filtro estndar.
$columnFilter -> setFilterType) PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER );

Ahora hemos identificado el tipo de filtro, podemos crear una regla de filtrado y establecer los valores de filtro: Cuando se crea un filtro simple en PHPExcel, slo tienes que especificar los valores de las columnas "comprobadas": haces esto al crear una regla de filtrado para cada valor.
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'Francia' ); $columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, Alemania

);

Esto crea dos reglas de filtrado: la columna ser filtrada por valores que coinciden con "Francia" o "Alemania". Para los filtros simples, puede crear tantas reglas como quieras Filtros simples son siempre un partido comparacin de igual a igual, y varios filtros estndar siempre son tratados como se unen por una o condicin.

4.1.1. Coincidencia de espacios en blanco


Si quieres crear un filtro para seleccionar las celdas en blanco, utilice:
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, '' );

4.2. Filtros DateGroup


En MS Excel, DateGroup filtros proporcionan una serie de selectores de filtro desplegable para valores de fecha, as que puede especificar aos enteros, o meses dentro de un ao, o das individuales dentro de cada mes.

Filtros DateGroup todava se aplican como un tipo de filtro estndar.


$columnFilter -> setFilterType) PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_FILTER );

Se crea un filtro dateGroup en PHPExcel, especifican los valores de las columnas "checked" como una matriz asociativa del ao. mes, da, hora minuto y segundo. Para seleccionar un ao y mes, necesitar crear una regla de DateGroup identificar el ao seleccionado y el mes:
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, array) 'ao' = > 2012, 'mes' = > 1 ) ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DATEGROUP );

Los valores

claves de la matriz asociativa son: ao mes da hora minuto segundo

Como filtros estndar, DateGroup filtros son siempre un partido de igual a igual, y varios filtros estndar sean tratados como ser acompaado por una o condicin. Tenga en cuenta que nos alse especificar un ruleType: para distinguir esto de un filtro estndar, ponemos explcitamente el tipo de la regla a AUTOFILTER_RULETYPE_DATEGROUP. Como con filtros estndar, podemos crear cualquier nmero de filtros DateGroup.

4.3. Filtros personalizados


En MS Excel, filtros personalizados permiten seleccionar condiciones ms complejas usando un operador as como un valor. Los ejemplos tpicos pueden ser valores que caen dentro de un rango (por ejemplo entre -20 y + 20), o valores de texto con caracteres comodn (por ejemplo comenzando con la letra U). Para manejar esto, ellos Filtros personalizados estn limitados a 2 reglas, y estas pueden unirse usando y o un OR.

Empezamos especificando un tipo de filtro, esta vez un CUSTOMFILTER.


$columnFilter -> setFilterType) PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER );

Y luego definir nuestras reglas.

A continuacin muestra un filtro simple comodn para mostrar todas las entradas de la columna comienzan con la letra 'U'.
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'U *' ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER );

MS Excel usa * como comodn para que coincida con cualquier nmero de caracteres, y? como comodn para que coincida con un solo carcter. 'U *' equivale a "comienza con una 'U'"; ' * U' equivale a "termina con una 'U'"; y ' * U *' equivale a "contiene una 'U'" Si quieres que partido explcitamente contra un * o un? carcter, puedes escaparlo con una tilde (~), as que? ~ ** coincidira explcitamente para un * carcter como el segundo personaje en el valor de la celda, seguido por cualquier nmero de otros caracteres. El otro personaje que necesita escapar es el ~ s mismo. Para crear una condicin "entre", necesitamos definir dos reglas:
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, -20 ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER ); $columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, 20 ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER );

Tambin establecemos el tipo de regla a CUSTOMFILTER. Esto define dos reglas, filtrado de nmeros que sean > = -20 o < = 20, as que tambin tenemos que modificar la condicin de combinacin para reflexionar y en lugar de o.
$columnFilter -> setAndOr) PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_COLUMN_ANDOR_AND );

El conjunto de los operadores para los filtros personalizados vlido se definen en la clase PHPExcel_Worksheet_AutoFilter_Column_Rule y comprenden: AUTOFILTER_COLUMN_RULE_EQUAL = 'iguales'; AUTOFILTER_COLUMN_RULE_NOTEQUAL = 'SqlDouble'; AUTOFILTER_COLUMN_RULE_GREATERTHAN = 'mayor'; AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL = 'greaterThanOrEqual'; AUTOFILTER_COLUMN_RULE_LESSTHAN = 'menos'; AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL = 'lessThanOrEqual';

4.4. Filtros dinmicos


Filtros dinmicos se basan en una condicin de comparacin dinmica, donde el valor que estamos comparando contra los valores de celda es variable, tales como 'hoy'; o cuando estamos probando contra un conjunto de datos del celular (por ejemplo ' sus'). Slo un nico filtro dinmico puede aplicarse a una columna a la vez.

Una vez ms, empezamos especificando un tipo de filtro, esta vez un DYNAMICFILTER.
$columnFilter -> setFilterType) PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER );

Al definir la regla para un filtro dinmico, no definimos un valor (podemos simplemente fijar a NULL) pero estamos precisando el tipo de filtro dinmico.
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_EQUAL, NULL, PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER );

Tambin establecemos el tipo de regla a DYNAMICFILTER. El conjunto de categoras filtro dinmico vlido es definido en la clase PHPExcel_Worksheet_AutoFilter_Column_Rule y se compone de: AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY = 'ayer'; AUTOFILTER_RULETYPE_DYNAMIC_TODAY = 'hoy'; AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW = 'maana'; AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE = 'yearToDate'; AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR = 'nuevo'; AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER = 'thisQuarter'; AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH = 'entoncesa'; AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK = 'estasemana'; AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR = 'el ao pasado'; AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER = 'lastQuarter'; AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH = 'Vegasel mes pasado'; AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK = semana ' pasada'; AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR = 'BT'; AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER = 'nextQuarter'; AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH = 'colegio'; AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK = 'la semana que viene'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1 = 'M1'; AUTOFILTER_RULETYPE_DYNAMIC_JANUARY = 'M1'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2 = 'M2'; AUTOFILTER_RULETYPE_DYNAMIC_FEBRUARY = 'M2'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3 = 'M3'; AUTOFILTER_RULETYPE_DYNAMIC_MARCH = 'M3'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4 = 'M4'; AUTOFILTER_RULETYPE_DYNAMIC_APRIL = 'M4'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5 = 'M5'; AUTOFILTER_RULETYPE_DYNAMIC_MAY = 'M5'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6 = 'M6'; AUTOFILTER_RULETYPE_DYNAMIC_JUNE = 'M6'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7 = 'M7'; AUTOFILTER_RULETYPE_DYNAMIC_JULY = 'M7'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8 = 'M8'; AUTOFILTER_RULETYPE_DYNAMIC_AUGUST = 'M8'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9 = 'M9'; AUTOFILTER_RULETYPE_DYNAMIC_SEPTEMBER = 'M9'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10 = 'M10'; AUTOFILTER_RULETYPE_DYNAMIC_OCTOBER = 'M10'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11 = 'M11'; AUTOFILTER_RULETYPE_DYNAMIC_NOVEMBER = 'M11'; AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12 = 'M12'; AUTOFILTER_RULETYPE_DYNAMIC_DECEMBER = 'M12';

AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1 = 'P1'; AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2 = 'Q2'; AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3 = 'Q3'; AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4 = 'Q4'; AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE = 'aboveAverage'; AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE = 'colectada' Slo podemos aplicar una regla de filtrado dinmico sola a una columna en un momento.

4.5. Top diez filtros


Top diez filtros son similares a los filtros dinmicos en que se basan en un Resumen de los valores de datos reales en las clulas. Sin embargo, a diferencia de los filtros dinmicos donde slo se puede seleccionar una sola opcin, Top diez filtros le permiten seleccionar basado en una serie de criterios: Puede identificar si quieres los valores (ms bajos) parte inferior o superior (ms alto). Puede identificar cmo muchos valores que desea seleccionar en el filtro Puede identificar si ste debe ser un porcentaje o un nmero de elementos.

Como filtros dinmicos, slo un nico filtro tapa diez puede aplicarse a una columna a la vez. Empezamos especificando un tipo de filtro, esta vez un DYNAMICFILTER.
$columnFilter -> setFilterType (PHPExcel_Worksheet_AutoFilter_Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER );

Entonces creamos la regla:


$columnFilter -> createRule()

-> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT, 5, PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER );

Esto filtrar el 5 por ciento de los valores de la columna. Para especificar los (valores ms bajos de la parte inferior 2), podemos especificar una regla de:
$columnFilter -> createRule() -> setRule) PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE, 5, PHPExcel_Worksheet_AutoFilter_Column_Rule:: AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM ) -> setRuleType) PHPExcel_Worksheet_AutoFilter_Column_Rule::AUTOFILTER_RULETYPE_TOPTENFILTER );

Los valores de opcin para filtros TopTen superior/inferior valor/por ciento son todos definidos en la clase PHPExcel_Worksheet_AutoFilter_Column_Rule y comprenden: AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE = 'byValue'; AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT = 'byPercent'; y AUTOFILTER_COLUMN_RULE_TOPTEN_TOP = 'top'; AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM = 'inferior';

5. Ejecutar un Autofiltro
Cuando se aplica un Autofiltro en MS Excel, establece la fila banderas ocultas/visible para cada fila de la zona de Autofiltro basada en los criterios seleccionados, para que se muestren slo las filas que coincidan con los criterios de filtro. PHPExcel no ejecutar la funcin equivalente automticamente al configurar o cambiar una expresin de filtro, pero slo cuando el archivo se guarda.

5.1. Aplicar el filtro


Si desea ejecutar su filtro de dentro de un script, tienes que hacerlo manualmente. Puedes hacerlo usando el mtodo showHideRows() los Autofiltros.
$autoFilter = $objPHPExcel - > getActiveSheet() -> getAutoFilter(); $autoFilter -> showHideRows();

Esto ajustar todas las filas que coincidan con los criterios de filtro a visible, al tiempo que oculta todas las otras filas dentro del rea de Autofiltro.

5.2. Mostrar filas filtradas


Simplemente crear bucles en las filas de un rea de Autofiltro se an acceso alguna vez fila, si coincide con los criterios de filtro o no. Para acceder a selectivamente slo las filas filtradas, necesita probar configuracin de visibilidad de cada fila.
foreach ($objPHPExcel -> getActiveSheet() -> getRowIterator() como $row) {} Si ($objPHPExcel -> getActiveSheet() -> getRowDimension ($row -> getRowIndex()) -> {getVisible())} echo 'Nmero de fila -', $row -> getRowIndex(), ' '; echo $objPHPExcel -> getActiveSheet() -> getCell () 'C'. $row -> getRowIndex() ) -> getValue(), ' '; echo $objPHPExcel -> getActiveSheet() -> getCell () Haba '. $row -> getRowIndex() ) -> getFormattedValue(), ' '; Eco EOL; } }

6. Clasificacin de Autofiltro
En MS Excel, Autofiltro permite tambin las filas a ordenarse. Esta caracterstica no est soportada por PHPExcel.

You might also like