Estoy trabajando con la libreria phpExcel para exportar/importar los productos de y a mi base de datos. Ya tengo hecho todo el proceso pero me he encontrado con que si un producto tiene la referencia 0001 por ejemplo, al pasarlo a excel me lo escribe como numérico, es decir, como 1.
Me gustaria saber como puedo dar formato tipo texto con esta libreria a una columna o a una celda para que no me cambie la referencia a tipo numérico automáticamente.
Para añadir los datos a la celda utilizao esta función:
Código PHP:
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($numColum,$numRow,$products[$i][$colName]);
Aprovecho para preguntar si hay alguna manera de aplicar el mismo formato a toda la columna en lugar de hacerlo celda por celda. Lo he estado buscando pero no lo he encontrado.
También me encuentro con otro problema, y es al calcular el ancho de las columnas.
En todas las columnas lo hago con la siguiente linia de código y me funciona perfectamente:
Código PHP:
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($numColum)->setAutoSize(true);
He conseguido que en lugar del setAutoSize, me haga un width predeterminado, pero entonces me lo hace con todas las columnas no combinadas excepto con la priemera que es donde hago el merge.
Bueno, dejo el código a ver si se entiende mejor a lo que me refiero:
Código PHP:
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($numColum)->setAutoSize(true);
$numColumA = $numColum;
for ($i = 1; $i < $numRowListAux-1; $i++)
{ $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($numColum)->setWidth(12);
$numColum++;
}
$objPHPExcel->getActiveSheet()->mergeCellsByColumnAndRow($numColumA,1,$numColum,1);