値を書き込む前にセルタイプを設定する方法を知っていますか? 「一般」、「テキスト」、「番号」などのタイプを設定できるようにしたいと思います。
ありがとうございました。
テキストが先行ゼロのある数字の場合は、次のようにします(Cuando el texto es unnúmeroque empieza por ceros、hacer)
$objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', $val,PHPExcel_Cell_DataType::TYPE_STRING);
タイプ(数値書式マスク)に値を書き込んだ後に設定するのと同じ方法:
$objPHPExcel->getActiveSheet()
->getStyle('A1')
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_GENERAL
);
または
$objPHPExcel->getActiveSheet()
->getStyle('A1')
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
「Number」は有効なフォーマットマスクではありませんが。
Classes/PHPExcel/Style/NumberFormat.phpで定義済みのフォーマットマスクのリストを見つけるか、値を有効なExcel数値フォーマットマスキング文字列に設定できます。
これを試して
$currencyFormat = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
$textFormat='@';//'General','0.00','@'
$Excel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode($currencyFormat);
$Excel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode($textFormat);`
たとえば、データベースから取得するのと同じ番号が必要でした。
1)00100.220000
2)00123
3)0000.0000100
だから私は以下のようにコードを修正しました
$objPHPExcel->getActiveSheet()
->setCellValue('A3', '00100.220000');
$objPHPExcel->getActiveSheet()
->getStyle('A3')
->getNumberFormat()
->setFormatCode('00000.000000');
$objPHPExcel->getActiveSheet()
->setCellValue('A4', '00123');
$objPHPExcel->getActiveSheet()
->getStyle('A4')
->getNumberFormat()
->setFormatCode('00000');
$objPHPExcel->getActiveSheet()
->setCellValue('A5', '0000.0000100');
$objPHPExcel->getActiveSheet()
->getStyle('A5')
->getNumberFormat()
->setFormatCode('0000.0000000');
マークのアドバイスに従い、これを実行して、ブック全体のテキストにデフォルトの数値書式を設定しました。
$objPHPExcel = new PHPExcel();
$objPHPExcel->getDefaultStyle()
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
そして、それは完璧に機能します。ありがとう、マーク・ベイカー。
先行ゼロとカンマで区切られた数字の場合:
「A」を入力して列全体に影響を与えることができます。
$objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
その後、通常どおりセルに書き込むことができます。