PHPExcelを使ってExcelブックを生成していると、このセルの表示形式は通貨の円表示にしたいなぁと思うことがある。つまり、3桁ごとにカンマを入れて、左端に「\」マークを表示したくなったわけだがやり方がよくわからなかったので、試行錯誤してみた。(まぁ、表示だけだったら、PHPで文字列として加工して文字列として突っ込んでしまうという、かなりの荒技もないわけではないけれど…あとでそのデータを利用するなんて事態が絶対無いならともかく、あり得るならやめておくのが得策のような気がする)

というわけで、PHPExcelを使ったことある人ならなんとなーくわかるじゃないかと思われるけど、とりえあえず1行だけ貼ってみるテスト。ま、該当するセルのスタイルを取得して、さらにナンバーフォーマットを取得して、フォーマットコードを指定するということになろうかと。

一方、定数で用意されている「PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE」は'”$”#,##0.00_-‘ってのが中身らしい。なるほど、最後のアンダースコアとハイフンの意味がイマイチよくわかっていないものの(汗)ドルマークを円のマークに変えて、小数点以下を切ってしまえば、きっとうまくいくんじゃないかということで(…やばいくらいに適当だけど)

$sheet->getStyleByColumnAndRow(X,X)->getNumberFormat()->setFormatCode(‘”\”#,##0’);

一応、今回の仕様ではマイナスの数字は扱わないせいか、上記の書き方でうまく表示されているように見えている。