Правильный формат для строк/чисел, начинающихся с нуля?
Я пытаюсь использовать PHP для создания файла, содержащего список телефонных номеров. Это работает нормально, однако, если номер телефона начинается с нуля, цифра удаляется из файла Excel.
Кто-нибудь знает, как правильно настроить форматирование, чтобы оно оставалось на месте?
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');
Явно установите тип в строку:
$type = PHPExcel_Cell_DataType::TYPE_STRING;
$sheet->getCellByColumnAndRow($column, $rowno)->setValueExplicit($value, $type);
Это старый вопрос, но я недавно боролся с этой проблемой, и я подумал, что это может помочь кому-то в будущем, если я опубликую дополнительную информацию здесь:
Хотя приведенные выше ответы верны, форматирование теряется при удалении столбца или строки, расположенных перед отформатированной ячейкой.
Решение, которое кажется устойчивым к этому, таково:
$cellRichText = new \PHPExcel_RichText($worksheet->getCell($cell));
$cellRichText->createText($cellValue);
Если по какой-то причине приведенные выше ответы не работают, вы можете просто попытаться заключить свои данные в кавычки, примерно так:
setCellValue('A1, '"' . $phone . '" ')
Но ваше значение также будет заключено в кавычки в вашем файле.
Используйте \t
со значением, подобным "$phone\t"