ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

WordPressにPHPExcelを組み込む方法

こんにちは、koheiです。

みなさん、PHPExcelってご存知でしょうか?
PHPExcelは、PHPでExcelファイルの加工や出力が行えるフリーのライブラリです。

このライブラリをWordPressに組み込めば、WordPressで作成したWebアプリからエクセル出力などが簡単に行えるようになります。
ということで、今日はWordPressにPHPExcelを組み込む方法とPHPExcelの簡単な使い方を紹介します。

スポンサーリンク

1.PHPExcelをダウンロード

まずは、PHPExcelを以下のサイトからダウンロードしましょう。

PHPExcel

上記サイトのClone or downloadをクリックし、Download ZIPをクリックします。

ダウンロードしたzipファイル(PHPExcel-1.8)を解凍すると、中にClassesというフォルダが入っています。
Classesフォルダを自分のWordPressテーマファイルの中にアップロードしましょう。

注意:まずは、ローカル環境で試すことをおすすめします
WordPressのローカル環境構築は以下記事を参考にしてください。
WordPressローカル環境の構築 備忘録

2.PHPExcelのインクルード

WordPressにPHPExcelをインクルードします。
functions.phpに以下のコードを追加します。

function add_excel_output() {
    if ( ! is_admin() ) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
   }
}
add_filter( 'wp_headers', 'add_excel_output');

※wp_headersとは、WordPressでヘッダー情報を書き換えてくれるフックです。
3,4行目でPHPExcel処理をインクルードしています。
5行目以降に、実際にPHPExcelの処理を書いていきます。
(実際の処理例は、この後紹介します)

さて、実際にWordPress上でエクセルを動作させるときは、おそらく何かボタンを押すなどのアクションがあって、動作させると思います。
そこで、あるボタンが押された場合のみに、処理を動かす場合は、以下の判断を入れればOKです。(add_excel_output処理の3行目)

■フォーム処理を使ったボタン処理の例

<form name="form1" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
  <input type="submit" name="excel_out" value="出力">
</form>
function add_excel_output() {
    if ( ! is_admin() ) {
      if( '出力' == $_POST[ 'excel_out' ]) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
      }
   }
}
add_filter( 'wp_headers', 'add_excel_output');

3.PHPExcelの処理例

3-1.セルに値を入れる方法

さて、PHPExcelのインクルードが出来たので、実際にPHPExcelの処理を紹介します。
まずは、特定のセルに値を入れる方法です。
以下は、セルA1にテストという文字を入れています。(11行目)

function add_excel_output() {
    if ( ! is_admin() ) {
      if( '出力' == $_POST[ 'excel_out' ]) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
        $excel = new PHPExcel();
        $excel->setActiveSheetIndex(0);
        $sheet = $excel->getActiveSheet();

        $sheet->setCellValue('A1', 'テスト');  /* A1セルにテストを設定 */
      }
   }
}
add_filter( 'wp_headers', 'add_excel_output');

3-2.指定した範囲に線を引く方法

次に特定の範囲に線を引く方法です。
以下は、A2〜E13の範囲に線を引いています。
ちなみに、BORDER_THINのパラメータを色々変更すると、2重線や太線にも出来るようです。(以下のサイトを参考にしてみてください)
PHPExcel 罫線の定数一覧

function add_excel_output() {
    if ( ! is_admin() ) {
      if( '出力' == $_POST[ 'excel_out' ]) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
        $excel = new PHPExcel();
        $excel->setActiveSheetIndex(0);
        $sheet = $excel->getActiveSheet();
        // ボーダーのデザインを定義
        $borderStyle = array(
            'borders' => array(
                    'allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)
            )
        );
        $sheet->getStyle('A2:E13')->applyFromArray($borderStyle);
      }
   }
}
add_filter( 'wp_headers', 'add_excel_output');

3-3.セルに色を付ける方法

次にセルに色を付ける方法です。
setARGB()のパラメータは、RGBコードを設定してください。
RGBコードは、以下サイトが参考になります。
原色大辞典

function add_excel_output() {
    if ( ! is_admin() ) {
      if( '出力' == $_POST[ 'excel_out' ]) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
        $excel = new PHPExcel();
        $excel->setActiveSheetIndex(0);
        $sheet = $excel->getActiveSheet();
        
        $sheet->getStyle( 'A1' )->getFill()->setFillType( PHPExcel_Style_Fill::FILL_SOLID )->getStartColor()->setARGB( 'b0c4de');
      }
   }
}
add_filter( 'wp_headers', 'add_excel_output');

3-4.エクセルをダウンロードする方法

最後に、エクセルをダウンロードする方法です。
以下は、output.xlsxというファイル名で、ダウンロードされます。
エクセルに値などを設定した後、12行目〜18行目の処理を追加しましょう。

function add_excel_output() {
    if ( ! is_admin() ) {
      if( '出力' == $_POST[ 'excel_out' ]) {
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel.php');
        include_once ( dirname(__FILE__) . '/Classes/PHPExcel/IOFactory.php');
        /* これ以降にPHPExcelの処理を書いていく */
        $excel = new PHPExcel();
        $excel->setActiveSheetIndex(0);
        $sheet = $excel->getActiveSheet();

        /* Excelダウンロード */
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="output.xlsx"');
        header('Cache-Control: max-age=0');

        $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
        $writer->save('php://output');
        exit();
      }
   }
}
add_filter( 'wp_headers', 'add_excel_output');

4.最後に

以上、WordPressにPHPExcelを組み込む方法を説明しました。
以前、WordPressで簡単なWebアプリを作る方法(WordPressでかんたんWebアプリを作る方法)を紹介しましたが、それとPHPExcelを組み合わされば、WordPress上で計算した結果をエクセルに設定して、ダウンロードするなどのアプリが作れます。

私が運営している診断士サイトでも簡単な財務分析結果をエクセル出力するツールを作りました。(※WordPressとPHPExcelで作ってます)
簡易財務分析ツール

みなさんも、PHPExcelを入れて色んなアプリ制作にチャレンジしてみてはいかがでしょう?
少しでも参考になれば幸いです。

それでは!!

関連記事(一部広告含む)

コメントを残す

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

CAPTCHA


ページトップボタン