以前、FuelPHPでphpwordを使ってワードファイル(docx)を出力できるようにした時のメモ | Lunarian's Blogというエントリーをあげたのですが、その後、私が利用したphpwordをforkして進化したと思われるphpoffice/phpwordを発見しました(Github: PHPOffice/PHPWord · GitHub)。日本語に対応し、Pakagistにも登録(該当ページ:phpoffice/phpword – Packagist)があり、使い方は同じっぽいのでこちらを利用する方法に変更します。以下、使い方を簡単にメモ。
fuelPHPへの導入方法− composerをつかう
fuelPHPは、バージョン1.6からパッケージ管理にcomposerが利用されています。(composer公式サイト:Composer)
phpoffice/phpword – Packagistがありますので、composerで導入することができます。
composer.json(composer.pharと同一フォルダにある)のrequire部分に、下記記載を追記。
1 |
"phpoffice/phpword": "0.9.1" |
あとは、ターミナル(黒い画面)で
1 |
composer.phar update |
で導入されます。phpwordは、ルートのvendorファイル下に配置され、class PHPWordにパスが通ります(という言い方が正しいかよくわからないけど、オートロードされるということ)。従って、普通に「new $phpword = new \PhpOffice\PhpWord\PhpWord();」でインスタンス生成で、利用できます。
使い方
※createWrite部分で誤りがあったため修正(2014/6/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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//Wordファイルテスト public function action_word_create() { $this->template = false; $phpword = new \PhpOffice\PhpWord\PhpWord(); $section = $phpword->createSection(); //フォントスタイルの設定 $default_font_style = array(); //行スタイルの設定 $right_paragraph_style = array( 'align' => 'right', 'spaceBefore' => false, 'spaceAfter' => false, 'spacing' => 1.3 //行間 ); $center_paragraph_style = array( 'align' => 'center', 'spaceBefore' => false, 'spaceAfter' => false, 'spacing' => 1.3 //行間 ); //描画 $section->addText('テキスト追加テスト', $default_font_style, $right_paragraph_style); $section->addTextBreak(); $section->addTextBreak(); $section->addText('テキスト追加できるかな?', $default_font_style, $center_paragraph_style); $section->addTextBreak(); $dir = dirname(dirname(dirname(__FILE__))) . '/tmp/'; //新規出力 $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpword, 'Word2007'); $objWriter->save($dir.'testfile.docx'); //Debug::dump($objWriter); } |
参考リンク
- PHPWord Wordファイルの作成 – PHPJP
- [php]PHPWordのテンプレートで改行を含む文字列をsetValueで追加する | ブログ | そうだ車輪と名づけよう 5th
- PHPWordを使ってPHPで日本語Word文書を出力する – mikage014の日記
- 怒涛のめもめもリンク集 | PHPWordで文書生成
FuelPHPでphpwordを使ってワードファイル(docx)を出力できるようにした時のメモ | Lunarian's Blog
[…] つかりました。そちらの方を利用する方が良いかと思いますので、コチラのエントリ:FuelPHPでphpoffice/phpwordを利用するメモ | Lunarian's Blogを参照した方が幸せになれるかもしれません。 […]