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


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

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

Author: pnuts, 2010-06-16

5 answers

Либо:

// 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');
 68
Author: Mark Baker, 2010-06-16 14:50:36

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

$type = PHPExcel_Cell_DataType::TYPE_STRING;
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type);
 16
Author: Sjoerd, 2010-06-16 14:46:29

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

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

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

$cellRichText = new \PHPExcel_RichText($worksheet->getCell($cell));                        
$cellRichText->createText($cellValue);
 1
Author: Tomasz, 2014-01-22 16:05:28

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

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

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

 1
Author: keepthepeach, 2015-04-21 05:05:23

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

 1
Author: Nishad Aliyar, 2016-08-22 12:39:31