[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今回は PHPExcel で行う「ワークシート」の「列(カラム)」及び「行」の 「幅設定、表示・非表示設定、グループ化/アウトライン化設定」 について説明したいと思います。
それぞれは別々の項目ですが、「列(カラム)」及び「行」の見え方に関する処理ですので、ここでまとめて説明します。
本の紹介では...
PHP8の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得。
PHPプログラミングの標準教科書『独習PHP』が、最新のPHP8に対応。
PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、
PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
...
■列(カラム)の幅の設定
列(カラム)の幅の設定を行うには ワークシートオブジェクト の getColumnDimension() メソッドで 列の寸法オブジェクト を取得し setWidth() メソッドで列(カラム)の幅の設定を行います。
setWidth() メソッドの引数は文字幅の単位を指定しますが、文字幅はブックの 既定のフォントの'0'(ゼロ)文字の幅 の様です。
以下に例を示します。
ワークシートのデフォルトスタイルのフォント名を 「MS Pゴシック」 フォントサイズを 「14」 に設定します。
その後 setWidth メソッドで 12文字分 に設定します。
[B1]セルに「0」を12文字設定し「B」列の幅が フォントの'0'の12文字分の幅 になっているか確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // デフォルトスタイルオブジェクト取得 $objDefaultStyle = $objSheet ->getDefaultStyle(); // フォントオブジェクト取得 $objFont = $objDefaultStyle ->getFont(); // フォント名設定 $objFont ->setName( 'MS Pゴシック' ); // フォントサイズ設定 $objFont ->setSize(14); // 列の寸法オブジェクトの setWidth メソッド $objSheet ->getColumnDimension( 'B' )->setWidth(12); // [B1]セルに「0」を12文字設定 $objSheet ->setCellValue( 'B2' , '000000000000' ); // [test9-1.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-1.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
「B」列の幅がほぼ文字列「000000000000」('0'12個分)になっています。
■列(カラム)の表示・非表示の設定
ワークシートの列の可視性を設定するには ワークシートオブジェクト の getColumnDimension() メソッドで 列の寸法オブジェクト を取得し setVisible() メソッドで列(カラム)の表示・非表示の設定を行います。 以下のソースは「B」列を明示的に示し、「C」列を非表示にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // 列の寸法オブジェクトの setVisible メソッド $objSheet ->getColumnDimension( 'B' )->setVisible(true); $objSheet ->getColumnDimension( 'C' )->setVisible(false); // [test9-2.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-2.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
「C」列が非表示なっているのが分かります。
■列(カラム)のグループ化/アウトライン化の設定
列をグループ化/アウトライン化するには ワークシートオブジェクト の getColumnDimension() メソッドで 列の寸法オブジェクト を取得し setOutlineLevel() メソッドでアウトラインのレベル設定を行います。
列の寸法オブジェクト の setCollapsed() メソッドで折りたたみの設定を行います。 また、列を非表示に設定しないと、折りたたみはExcel 2007で表示されません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // 列の寸法オブジェクトの setOutlineLevel メソッド $objSheet ->getColumnDimension( 'C' )->setOutlineLevel(1); // 列の寸法オブジェクトの setCollapsed メソッド(折りたたむ) $objSheet ->getColumnDimension( 'C' )->setCollapsed(true); // 列の寸法オブジェクトの setVisible メソッド(非表示) $objSheet ->getColumnDimension( 'C' )->setVisible(false); // [test9-3.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-3.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
■行の高さ設定
行の高さ設定を行うには ワークシートオブジェクト の getRowDimension() メソッドで 行の寸法オブジェクト を取得し setRowHeight() メソッドで行の高さ設定を行います。
Excelは行の高さをポイントで換算します。 「1」ポイントは「1/72」インチ(または約0.35mm)です。 デフォルト値は12.75ポイントで、値の許容範囲は「0」~「409」ポイントです。 「0」ポイントの設定は非表示の行です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // 行の寸法オブジェクトの setRowHeight メソッド(50ポイント) $objSheet ->getRowDimension( '2' )->setRowHeight(50); // 行の寸法オブジェクトの setRowHeight メソッド(0ポイント:非表示) $objSheet ->getRowDimension( '4' )->setRowHeight(0); // [test9-4.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-4.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
■行の表示・非表示の設定
ワークシートの行の可視性を設定するには ワークシートオブジェクト の getRowDimension() メソッドで 行の寸法オブジェクト を取得し setVisible() メソッドで列(カラム)の表示・非表示の設定を行います。
以下のソースは「2,4,6」行を非表示にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // 行の寸法オブジェクトの setVisible メソッド $objSheet ->getRowDimension( '2' )->setVisible(false); $objSheet ->getRowDimension( '4' )->setVisible(false); $objSheet ->getRowDimension( '6' )->setVisible(false); // [test9-5.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-5.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
「2,4,6」行が非表示なっているのが分かります。
■行のグループ化/アウトライン化の設定
行をグループ化/アウトライン化するには ワークシートオブジェクト の getColumnDimension() メソッドで 行の寸法オブジェクト を取得し setOutlineLevel() メソッドでアウトラインのレベル設定を行います。
行の寸法オブジェクト の setCollapsed() メソッドで折りたたみの設定を行います。 また、行を非表示に設定しないと、折りたたみはExcel 2007で表示されません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // ライブラリ読込 require_once './PHPExcel-1.8/Classes/PHPExcel.php' ; // PHPExcelオブジェクト作成 $objBook = new PHPExcel(); // ワークシートオブジェクト $objSheet = $objBook ->getActiveSheet(); // 行の寸法オブジェクトの setOutlineLevel メソッド $objSheet ->getRowDimension( '2' )->setOutlineLevel(1); // 行の寸法オブジェクトの setCollapsed メソッド(折りたたむ) $objSheet ->getRowDimension( '2' )->setCollapsed(true); // 行の寸法オブジェクトの setVisible メソッド(非表示) $objSheet ->getRowDimension( '2' )->setVisible(false); // [test9-6.xlsx]:Excel2007形式で保存する $objWriter = PHPExcel_IOFactory::createWriter( $objBook , "Excel2007" ); $objWriter ->save( 'test9-6.xlsx' ); exit (); ?> |
出力されたエクセルファイルを見てみると以下の様になります。
関連する記事
⇒PHP エクセルファイル出力の方法について(PHPExcel)⇒PHP PHPExcel エクセルのワークシートの処理について
⇒PHP PHPExcel エクセルのワークシートのセルへのアクセスについて
⇒PHP PHPExcel エクセルのワークシートのセルへのアクセスについて(行・列指定)
⇒PHP PHPExcel エクセルのワークシートのセルへ漢字(全角文字)の設定について
⇒PHP PHPExcel エクセルのワークシートのセルのスタイル設定について
⇒PHP PHPExcel エクセルのワークシートのセルの条件付き書式設定について
⇒PHP PHPExcel エクセルのワークシートのセルのデータ入力規則設定について
⇒PHP PHPExcel エクセルのワークシートの「列(カラム)・行」の「幅、表示・非表示、グループ化/アウトライン化」設定について
⇒PHP PHPExcel エクセルのワークシートの紙の大きさやページ設定について
⇒PHP PHPExcel CSVファイルの読み込み・書き込みについて
⇒PHP PHPExcel セル内の文字列のフォントサイズを変える方法について
ショッピングサイト一通りを最初から自分で作ってみることで、PHPでのシステム開発を学べる入門書です。
コメント