2012年3月7日水曜日

[PHP][Excel][PHPExcel] セルに0埋め(0詰め)した値をセットする

PHPExcelにあるメソッドのsetCellValueやsetCellValueByColumnAndRowで0埋め(0詰め)で検索してきていた人がいたのでせっかくなのでコードを紹介してみる。

ちなみに普通にアプリケーションのExcelでもセルの書式設定から表示形式を文字列にしないと、「01」などと入力しても「1」に勝手に書き換えられてしまう。

PHPExcelも考え方は同じでセルの表示形式を文字列にしつつ値を入れるという方法になる。

//ClassesをおいたパスからPHPExcel.phpをインクルードする
require_once('Classes/PHPExcel.php');
//書き込むExcelのパス
define('EXCEL','data/test.xls');

//Excelのクラスを作る
$excel=new PHPExcel();
//アクティブなシートを取得する
$sheet=$excel->getActiveSheet();
//シートに名前をつける
$sheet->setTitle('sheet title');
//R1C1参照で値を入れる
$sheet->setCellValueExplicitByColumnAndRow(0,1,'01',PHPExcel_Cell_DataType::TYPE_STRING);
//A1参照で値を入れる
$sheet->setCellValueExplicit('A2','01',PHPExcel_Cell_DataType::TYPE_STRING);
//.xls形式で書き込むためのクラスを作る
//.xlsx形式を書き込む場合は'Excel5'の部分を'Excel2007'に変える →$writer=PHPExcel_IOFactory::createWriter($excel,'Excel2007');
$writer=PHPExcel_IOFactory::createWriter($excel,'Excel5');
//ファイルに書き込む
$writer->save(EXCEL);

とすることによって

ABC
101
2002
3

のようなデータを書き込むことが可能になる。

0 件のコメント:

コメントを投稿