14

Excel(xlsx)で小数点以下2桁を表示する必要があります。私はを使用してPHPExcelいます。PHPでは、次のようなものを使用して、指定した小数点以下の桁数のみを表示できます。

echo sprintf("%0.2f", $row['price']);

これは、値に小数点が含まれていない場合でも常に小数点以下2桁を表示します。つまり、の値がの場合、$row['price']エコー15001500.00ます。私は優れているために同じ値を書く必要があります。私は試した

$sheet->setCellValue("A1", sprintf("%0.2f", $row['price']));

ただし、表示する1500代わりに表示します1500.00(Excelは自動的に数値であり、小数点以下の部分、つまり.00この場合は切り捨てられるため)。

私も次のことを試しました

$sheet->getStyle("A1")->getNumberFormat()->setFormatCode('0.00');

しかし、指定されたものを達成するのに十分ではありません。

PHPExcelを使用してExcelで指定された小数点以下の桁数を(常に)表示するにはどうすればよいですか?

4

6 に答える 6

33
$sheet->getStyle("A1")->getNumberFormat()->setFormatCode('0.00'); 

セルA1の値が数値であり、フォーマットされた文字列でない限り、機能するはずです... sprintfを使用してExcelのフォーマットを強制しようとせず、単にフォーマットコードを使用してください。

于 2012-05-31T12:08:48.333 に答える
5

カンマ付きの数値としてフォーマットされます。値が9桁を超えていないと仮定します。

$sheet->getStyle("A1")->getNumberFormat()->setFormatCode('###,###,###.##');
于 2013-07-10T08:59:46.733 に答える
4

これを行うこともできます:

$sheet->setCellValue("A1",sprintf("%0.2f",$row['price']),true)->getStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);

setCellValueに「true」を追加すると、ワークシートではなくセルを直接参照し、セル値なしでgetStyleメソッドを呼び出すことができます。

于 2016-10-04T16:04:04.650 に答える
3

特殊文字が必要な場合は、html_entity_decodeを使用してください。

$currencyFormat = html_entity_decode("€ 0,0.00",ENT_QUOTES,'UTF-8');
$objPHPExcel->getActiveSheet()
            ->getStyle("A1")
            ->getNumberFormat()->setFormatCode($currencyFormat);
于 2013-08-12T17:26:13.410 に答える
2
$objPHPExcel->getActiveSheet()->getStyle('ce')->getNumberFormat()->setFormatCode('0.00');
于 2015-07-25T19:00:46.780 に答える
2

それを試してください:

$sheet->getStyle("A1")->getNumberFormat()->setFormatCode('### ### ### ##0.00');

できます。

于 2017-06-12T13:38:57.457 に答える