WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Laravel Excelでシート内の操作

Laravel Excelでシート内の操作

このエントリーをはてなブックマークに追加

Laravel Excelのシート内の操作方法を調べてみたいと思います。

行の操作

Laravel Excelで行の操作を行うには、rowメソッドを使用します。rowメソッドの第1引数には、指定行、第2引数には、行内のセルの値を配列で指定します。

//1行目のセルに値を代入
 $sheet->row(1,['test1','test2']);
//2行目のセルに値を代入
 $sheet->row(2,['test3,'test4']);

又、指定行のセルのプロパティを変更するには、第2引数にクロージャーでset+プロパティメソッドを指定します。

$sheet->row(1,function($row){
 //1行目のセルの背景色に青を指定
 $row->setBackground('#0000FF');
 //1行目のセルの文字色に白を指定
 $row->setFontColor('#FFFFFF');
 });

行の追加

行を追加するには、appendRowメソッドを使用します。第1引数に指定した行の直後に、第2引数で指定した配列の値のセルを追加します。又、第1引数に行を指定せずに、配列を直接指定すれば、最終行の後に指定した配列の値のセルを挿入します。

//2行目の後に行を追加します。
$sheet->appendRow(2,['test1','test2']);
//最終行の後に行を追加します。
$sheet->appendRow(['test3',test4']);

行の挿入

又、prependRowメソッドを使用すれば、指定した行の直前に行を挿入します。又、上記と同様に第1引数に行を指定しないで、配列を直接指定すれば、最初の行の直前に行を挿入します。

//3行目の直前に指定した値の行を挿入します。
$sheet->prependRow(3,['test1',test2']);
//最初の行の直前に行を挿入します。
$sheet->prependRow(['test3','test4']);

複数行の追加

複数行を追加するには、rowsメソッドを使用します。

$sheet->rows([
['test1',test2'],
['test3','test4']
]);

セルの操作

セルを操作するには、cellメソッドを使用します。cellメソッドの第1引数にはセルの位置、第2引数は、クロージャーを指定します。そして、複数のセルを同時に操作するにはcellsメソッドを使用します。

$sheet->cell('A1',function($cell){
 //ここにセルの操作を記述します。
 });
 #sheet->cells('A1:A5',cunftion($cell){
 //ここに複数のセルの操作を記述します。
 });

セルのプロパティを操作するには、set+プロパティ名メソッドを使用します。

  • 背景色の変更
    $cells->setBackground('#000000');
  • フォントカラーの変更
    $cells->setFontColor('#FFFFFF');
  • フォントの種類の変更
    $cells->setFontFamily('MS ゴシック');
  • フォントサイズの変更
    $cells->setFontSize(16);
  • フォントの太さの変更
    $cells->FontWeight('bold');
  • フォントの複数のプロパティを同時に変更
    $cells->Font([
     'family' => 'MS明朝',
     'size'  => '16',
     'bold' => true
     ]);
  • 罫線を上、右、下、左の順に指定
    $cells->setBorder('solid','none','none','solid');
  • 罫線の種類の指定を配列で指定
    $cells->setBorder([
     'borders' => [
     'top' => ['style' => 'solid'],
     ]
     ]);
  • セル内の横の配置を指定
    $cells->setAlignment('center');
  • セル内の縦の配置を指定
    $cells->setValignment('middle');

 シートのスタイル変更

シートのスタイルを変更するには、setStyleメソッドを使用します。

$sheet->setStyle([
 'font' => [
 'name' => 'MS明朝',
 'size' => '15',
 'bold' => true
 ]
 ]);

また、シートのフォントをまとめて変更するには、setFont()メソッドを使用し、別々に変更するには、set+プロパティ名メソッドを使用します。

//シートのフォントをまとめて変更
 $sheet->setFont([
 'family' => 'MSゴシック',
 'size' => '15',
 'bold' => true
 ]);
//シート内のフォント種類を変更
 $sheet->setFontFamily('MS明朝');
 //シート内のフォントサイズを変更
 $sheet->setFontSize(15);
 //シート内のフォントの太さを変更
 $sheet->setFontBold(true);
//シート内のすべての罫線をまとめて変更
 $sheet->setAllBorders('thin');
 //シート内のセルの罫線を指定して変更
 $sheet->setBorder('A1','thin');
 //シート内のセルの罫線の範囲を指定して変更
 $sheet->setBorder('A1:F10','thin');

シートのウインドウ枠の固定

シートのウインドウ枠を固定するには、freeze+固定位置メソッドを使用します。

//シートの最初の行を固定します。
 $sheet->freezeFirstRow();
 //シートの最初の列を固定します。
 $sheet->freezeFirstColumn();
 //シートの最初の行と列を固定します。
 $sheet->freezeFirstRowAndColumn();
 //固定位置をセルで指定します。
 $sheet->setFreeze('A2');

オートフィルター

オートフィルターを使用可能にするには、setAutoFilterメソッドを使用します。引数には、オートフィルターを使用する範囲を指定しますが、範囲の指定しない場合は、シート全体にフィルターが適用されます。

//シート全体にオートフィルターを適用する
$sheet->setAutoFilter(); 
 //範囲を指定してオートフィルターを適用する
 $sheet->setAutoFilter('A1:E10');

セルのサイズ変更

セルのサイズを変更するには、setWidth,setHeightメソッドを使用します。setWidthとsetHeightは、それぞれ一つの列や幅を変更するには、第1引数に、列(行)を指定して、第2引数でその値を指定します。また、まとめて指定するには、配列で指定します。

  • セルの幅を変更
    //一つの列の幅を変更する
     $sheet->setWidth('A5',5);
     //複数の行の幅を同時に変更する
     $sheet->setWidth([
     'A' => 5,
     'B' => 10
     ]);
  • セルの高さを変更
    //一つの行の高さを変更する
     $sheet->setHeight(1,50);
     //複数の行の高さを同時に変更する
     $sheet->setHeight([
     1 => 50,
     2 => 25
     ]);

セルのサイズ(幅、高さ)を同時に変更するには、setSizeメソッドを使用します。setSizeメソッドの第1引数には、セルの位置、第2引数には、幅、第3引数には、高さを指定します。また、配列で指定することもできます。

  • 一つのセルのサイズを変更
    $sheet->setSize('A1',500,50);
  • セルのサイズを配列で指定して変更
    $sheet->setSize([
     'A1' => [
     'width' => 50,
     'height' => 500,
     ]
     ]);

オートサイズ

エクスポートされたファイルは、自動的にサイズは設定されています。オートサイズはsetAutoSizeメソッドで、変更することができます。

//オートサイズを有効にする
 $sheet->setAutoSize(true);
 //オートサイズを無効にする
 $sheet->setAutoSize(fale);
 //指定列だけのオートサイズを無効にする
 $sheet->setAutoSize([
 'A','C'
 ]);

 セルの結合

セルを結合するには、mergeCellsメソッドや、setMergeColumnメソッドを使用します。mergeCellsメソッドは、結合するセルの範囲を指定します。

$sheet->mergeCells('A1:E1');

setMergeColumnメソッドは、結合する列や行を配列で指定します。

$sheet->setMergeColumn([
'columns' => ['A','B','C','D'],
'rows => [
[2,3],[5,11]
]
]);

列のフォーマット指定

列のフォーマットを変更するには、setColumnFormatメソッドを使用します。setColumnFormatメソッドは、フォーマット形式を配列で指定します。

//列のフォーマットを%形式に変更
$sheet->setColumnFormat([
'C' => '0%'
]);
$sheet->setColumnFormat([
'A2:K2' => '0000'
]);
$sheet->setColumnFormat([
'B' => '0',
'D' => '0.00',
'E' => '@',
'F' => 'yyyy-mm-dd',
]);

 PHPExcelのメソッド

$excelメソッドや、$sheetメソッドから、PHPExcelのメソッドも呼び出すことができます。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です