2011-02-09 31 views
21

Con PHPExcel, estoy usando:PHPExcel tipo de datos establecido en el rango de celdas

$workSheet->fromArray($array);

Para establecer mis datos. Sin embargo, una columna necesita establecerse como cadena (un número con un cero inicial, el cero inicial se corta si no se establece en una cadena). Si no estaba usando el método fromArray, podría establecer el tipo de datos usando PHPExcel_Worksheet::setCellValueExplicit().

Sin embargo, quiero hacer esto utilizando un rango de columnas. Lo ideal sería algo como esto:

$worksheet->getCell('A1:A50')->setDataType(PHPExcel_Cell_DataType::TYPE_STRING); 

Pero mirando el código, getCell no permitirá un rango, sólo una única célula. ¿Cómo puedo hacer esto?

Respuesta

12

Actualmente, no hay ningún método en PHPExcel que le permita establecer el tipo de datos para un rango de celdas, solo para una celda individual.

Hay un par de opciones ... más difícil sería escribir un Encuadernador de valores de celda personalizado que establezca automáticamente el tipo de datos para esas celdas en la cadena cuando el valor de la celda se establece con fromArray().

Lo que podría hacer en su lugar (y es mucho más fácil), es dejar el tipo de datos como un número y el valor como un número, pero establecer una máscara de formato numérico que le indique a Excel que muestre los números con ceros a la izquierda.

$objPHPExcel->getActiveSheet()->getStyle('L3:N2048') 
           ->getNumberFormat()->setFormatCode('0000'); 
Cuestiones relacionadas