http://mizyupon-rpg.com/posts/719.html
途中!!!
とりあえず作法
include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
$excel = new PHPExcel();
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$excel = $reader->load(dirname(__FILE__) . '/template.xls');
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save(ファイルパス);
header('Content-Type: application/octet-stream');
header("Content-Disposition:attachment;filename=\"".$filename."\"");
header("Content-Length:".filesize($file_path));//ダウンロードするファイルのサイズ
ob_end_clean();//ファイル破損エラー防止
$writer = PHPExcel_IOFactory::createWriter($book, 'Excel2007');
$writer->setIncludeCharts(TRUE); // ポイント!
$writer->save('php://output');
シートの設定
$excel->setActiveSheetIndex(0);//何番目のシートに有効にするか
$sheet = $excel->getActiveSheet();//有効になっているシートを取得
$sheet = setTitle('シート名');//シート名を設定します。
$excel->getSheetCount();//シートの数を返す。
$excel->getSheetNames();//シートタブの順序に応じてブック内のシートリストを返す。
$excel->getSheet();//シートタブの順番でシートにアクセス。1番目のシートは"0"から
$excel->getSheetByName();//シートタブの名前でシートにアクセス。
$excel->createSheet();//シートを新規追加する
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, 'My Data');
$objPHPExcel->addSheet($myWorkSheet, 0);
$objClonedWorksheet = clone $objPHPExcel->getSheetByName('sheet1');
$objClonedWorksheet->setTitle('コピーsheet1');
$objPHPExcel->addSheet($objClonedWorksheet);
$objClonedWorksheet = clone $objPHPExcel1->getSheetByName('sheet1');
$objPHPExcel->addExternalSheet($objClonedWorksheet);
$sheetIndex = $excel->getIndex($objPHPExcel-> getSheetByName('Worksheet 1'));//指定したシートの順序を取得
$excel->removeSheetByIndex($sheetIndex);//指定したシートの順序からシートを削除
値の入力
$sheet->setCellValue('A1' , 'こんにちは');
$sheet->setCellValueByColumnAndRow(0 , 1, 'こんにちは' ); // 列、行
画像の貼り付け
$objDrawing = new PHPExcel_Worksheet_Drawing();//画像用のオプジェクト作成
$objDrawing->setPath('ファイルのパス');//貼り付ける画像のパスを指定
$objDrawing->setHeight(数値);//画像の高さを指定
$objDrawing->setWidth(数値);//画像の高さを指定
$objDrawing->setResizeProportional(false);//縦横比の変更なし
$objDrawing->setCoordinates('セル名');//位置
$objDrawing->setOffsetX(数値);//指定した位置からどれだけ横方向にずらすか。
$objDrawing->setWorksheet($sheet);
セルの結合
$sheet->mergeCells('A1:A10');
$sheet->mergeCellsByColumnAndRow(0,1,9,1);
セルの書式設定
$sheet->getStyle('セル名')->各種設定; // 単一セル指定
$sheet->getStyle('セル名:セル名')->各種設定;//セル範囲指定
$sheet->getStyleByColumnAndRow(列,行)->各種設定; // 座標
ただし、値の入力のように座標での範囲指定はできませんでした。
座標指定で範囲を指定する場合は、座標をセル名に置き換えてくれるstringFromColumnIndexメソッドを使用する必要があります。
$cell_range = PHPExcel_Cell::stringFromColumnIndex(開始セルの列座標) . '開始セルの行座標:'
.PHPExcel_Cell::stringFromColumnIndex(終了セルの列座標) . '終了セルの行座標';
$sheet->getStyle($cell_range)->各種設定;
$colWidth = $objPHPExcel->getActiveSheet()->getColumnDimension("A")->getWidth();