2010-06-16 40 views
30

Estoy tratando de usar PHP para crear un archivo que contiene una lista de números de teléfono. Está funcionando bien; sin embargo, si el número de teléfono comienza con cero, el dígito se elimina del archivo de Excel.¿Formato correcto para cadenas/números que comienzan con cero?

¿Alguien sabe cómo configurar el formateo correctamente para que permanezca en su lugar?

Respuesta

68

O bien:

// Set the value explicitly as a string 
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', '0029', PHPExcel_Cell_DataType::TYPE_STRING); 

o

// Set the value as a number formatted with leading zeroes 
$objPHPExcel->getActiveSheet()->setCellValue('A3', 29); 
$objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()->setFormatCode('0000'); 
+1

Gracias, Mark. – Francisc

+2

Al igual que una nota para los lectores futuros, la segunda opción no parece funcionar, simplemente lo establece como un número. Pero la primera opción funciona genial, gracias. –

+0

Ambas opciones funcionan para mí para archivos xlsx y xls, no han probado otros escritores –

16

Establecer el tipo de cadena de forma explícita:

$type = PHPExcel_Cell_DataType::TYPE_STRING; 
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type); 
1

Ésta es una vieja pregunta, pero ha sido recientemente luchando con este tema y yo pensé que podría ayudar a alguien en el futuro si publico información adicional aquí:

Si bien las respuestas anteriores son correctas, el formato se pierde al eliminar una columna o fila que se encuentra antes de la celda formateada.

La solución que parece estar resistand a saber:

$cellRichText = new \PHPExcel_RichText($worksheet->getCell($cell));       
$cellRichText->createText($cellValue); 
1

Si por alguna razón las respuestas anteriores no funcionan, puede simplemente tratar de envolver sus datos entre comillas, algo como esto:

setCellValue('A1, '"' . $phone . '" ') 

Pero su valor estará rodeado de comillas en su archivo también.

0

Uso \t con el valor como "$phone\t"

+0

Gran solución. – Kalai

+0

Esto agregará una pestaña en el campo de valor. No es genial si quieres copiarlo sin espacios/pestañas y sin problemas. – CodeBrauer

Cuestiones relacionadas