2012年3月6日火曜日

[PHP][Excel][PHPExcel] PHPExcelの導入2

前回はPHPExcelからデータを読み込む方法をやったので、
今回はExcelにデータを書き込む方法をやってみる。
まずは単純なデータの書き込み。

//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->setCellValueByColumnAndRow(0,1,'test');
//A1参照で値を入れる
$sheet->setCellValue('B1','test2');
//数字を入れる
$sheet->setCellValue('A2','3');
//計算式を入れる
$sheet->setCellValue('B2','=A2*3');
//.xls形式で書き込むためのクラスを作る
//.xlsx形式を書き込む場合は'Excel5'の部分を'Excel2007'に変える →$writer=PHPExcel_IOFactory::createWriter($excel,'Excel2007');
$writer=PHPExcel_IOFactory::createWriter($excel,'Excel5');
//ファイルに書き込む
$writer->save(EXCEL);

とすると

ABC
1testtest2
239
3

というExcelファイルが作られる。

またスタイルの設定なども変えることが可能。

//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');
//A1参照で値を入れる
$sheet->setCellValue('A1','test1');
//フォントサイズ
$sheet->getDefaultStyle()->getFont()->setSize(10);
//フォント
$sheet->getDefaultStyle()->getFont()->setName('メイリオ');
//セルの下に罫線を引く
$sheet->getStyle('A1')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//センター寄せ
$sheet->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//文字色
$sheet->getStyle('A1')->getFont()->getColor()->setARGB('FFFF3333');
//背景色
$sheet->getStyleByColumnAndRow(0,1)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$sheet->getStyleByColumnAndRow(0,1)->getFill()->getStartColor()->setARGB('FFCCCCFF');

//.xls形式で書き込むためのクラスを作る
//.xlsx形式を書き込む場合は'Excel5'の部分を'Excel2007'に変える →$writer=PHPExcel_IOFactory::createWriter($excel,'Excel2007');
$writer=PHPExcel_IOFactory::createWriter($excel,'Excel5');
//ファイルに書き込む
$writer->save(EXCEL);

ABC
1test
2
3

という結果になる。

0 件のコメント:

コメントを投稿