web-dev-qa-db-fra.com

Format correct pour les chaînes / nombres commençant par zéro?

J'essaie d'utiliser PHP pour créer un fichier contenant une liste de numéros de téléphone. Cela fonctionne bien mais si le numéro de téléphone commence par zéro, le chiffre est supprimé du fichier Excel.

Quelqu'un sait-il comment régler correctement la mise en forme pour qu'elle reste en place?

30
Dan

Soit:

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

ou

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

Définissez le type sur chaîne explicitement:

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

C'est une vieille question, mais j'ai récemment eu des problèmes avec ce problème et j'ai pensé que cela pourrait aider quelqu'un à l'avenir si je poste des informations supplémentaires ici:

Bien que les réponses ci-dessus soient correctes, la mise en forme est perdue lorsque vous supprimez une colonne ou une ligne située avant la cellule formatée.

La solution qui semble y résister est:

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

Si pour une raison quelconque les réponses ci-dessus ne fonctionnent pas, vous pouvez simplement essayer de mettre vos données entre guillemets, quelque chose comme ceci:

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

Mais votre valeur sera également entourée de guillemets dans votre fichier.

1
keepthepeach

Utilisation \t avec la valeur comme "$phone\t"

1
Nishad Aliyar