web-dev-qa-db-ja.com

ゼロで始まる文字列/数字の正しいフォーマット?

PHPを使用して、電話番号のリストを含むファイルを作成しようとしています。ただし、電話番号がゼロで始まる場合、数字はExcelファイルから削除されます。

フォーマットを適切に設定する方法を知っている人はいますか?

30
Dan

どちらか:

// 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
Mark Baker

タイプを明示的に文字列に設定します。

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

これは古い質問ですが、私は最近この問題に苦労しており、ここにいくつかの追加情報を投稿すると将来的に誰かを助けるかもしれないと思いました:

上記の答えは正しいものの、フォーマットされたセルの前にある列または行を削除すると、フォーマットは失われます。

抵抗しそうな解決策は次のとおりです。

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

何らかの理由で上記の回答が機能しない場合、次のようにデータを引用符で囲むだけで済みます。

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

ただし、ファイル内の値も引用符で囲まれます。

1
keepthepeach

使用する \tのような値を持つ"$phone\t"

1
Nishad Aliyar