PHPWordを使ってみた【前編】


PHPWordとは

PHPOfficeにはPHPSpreadsheetやPHPPowerpointなどが存在しますが、今回はPHPWordを使ってみました。
PHPWordは文字通り、PHPでWord文書を作成することができるライブラリです。

インストール

composerでPhpWordをインストールします。

composer require phpoffice/phpword

PHPの出力

<?php
  // インスタンス生成
  $phpWord = new \PhpOffice\PhpWord\PhpWord();

  // Wordのセクションを追加
  $section = $phpWord->createSection();

  // 文字列を追加(オプションで書式設定追加)
  $section->addText(
    'PHPWord使ってみた',
    ['name' => 'MS ゴシック', 'size' => 14, 'color' => '000000']
  );

  // テーブルのスタイルを指定
  $tableStyle = array(
    'borderColor' => '000000',
    'borderSize' => 6,
    'cellMargin' => 50,
    'size' => 9
  );

  // テーブルを追加
  $table = $section->addTable($tableStyle);
  $table->addRow();

  // テーブル内のセルに文字列追加
  $table->addCell(2000, ['bgColor' => 'FFFFFF'])->addText(
    'テスト',
    ['name' => 'MS ゴシック', 'size' => 9, 'color' => '000000']
  );

  // 1つのセル内に複数行の文字列を追加
  $multiTable = $table->addCell(2000, ['bgColor' => 'FFFFFF']);
  $multiTable->addText(
    '① 1行目',
    ['name' => 'MS ゴシック', 'size' => 9, 'color' => '000000']
  );
  $multiTable->addText(
    '② 2行目',
    ['name' => 'MS ゴシック', 'size' => 9, 'color' => '000000']
  );
  $multiTable->addText(
    '③ 3行目',
    ['name' => 'MS ゴシック', 'size' => 9, 'color' => '000000']
  );

  // Word生成
  $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');

  // 生成したファイルを保存(今回のファイル名はtest.docxとした)
  $objWriter->save('test.docx');

出力結果

まとめ

今回は、Wordファイルの生成を行い、フォントスタイルの指定やテーブルの作成も行いました。
他の書式設定やレイアウトの変更に関しては、以下をご確認ください。
https://phpword.readthedocs.io/en/latest/

次回は、今回生成したWordファイルをGoogle Driveへアップロードする方法を取り扱います。

参照

https://qiita.com/satthi/items/761f7d956e2e9ca76f53