Правильный формат для строк / чисел, начинающихся с нуля? - PullRequest
30 голосов
/ 16 июня 2010

Я пытаюсь использовать PHP для создания файла, содержащего список телефонных номеров.Работает нормально, однако, если номер телефона начинается с нуля, цифра удаляется из файла Excel.

Кто-нибудь знает, как правильно установить форматирование, чтобы оно оставалось на месте?

Ответы [ 5 ]

68 голосов
/ 16 июня 2010

Или:

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

или

// Set the value as a number formatted with leading zeroes
$objPHPExcel->getActiveSheet()->setCellValue('A3', 29);
$objPHPExcel->getActiveSheet()->getStyle('A3')->getNumberFormat()->setFormatCode('0000');
16 голосов
/ 16 июня 2010

Установите тип в строку явно:

$type = PHPExcel_Cell_DataType::TYPE_STRING;
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type);
1 голос
/ 22 августа 2016

Используйте \t со значением типа "$phone\t"

1 голос
/ 21 апреля 2015

Если по какой-то причине приведенные выше ответы не работают, вы можете просто попытаться заключить ваши данные в кавычки, что-то вроде этого:

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

Но ваше значение будет заключено в кавычки в вашем файлеа также.

1 голос
/ 22 января 2014

Это старый вопрос, но я недавно боролся с этой проблемой, и я подумал, что это может помочь кому-то в будущем, если я опубликую некоторую дополнительную информацию здесь:

Хотя приведенные выше ответы верны, форматирование теряется при удалении столбца или строки, расположенной перед отформатированной ячейкой.

Решение, которое кажется устойчивым к этому:

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