LoginSignup
3
2

More than 1 year has passed since last update.

PHPWordを使ってみた【前編】

Last updated at Posted at 2021-05-31

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');

出力結果

スクリーンショット 2021-06-01 7.57.55.png

まとめ

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

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

参照

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

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2