FuelPHPでphpoffice/phpwordを利用するメモ
以前、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部分に、下記記載を追記。
"phpoffice/phpword": "0.9.1"
あとは、ターミナル(黒い画面)で
composer.phar update
で導入されます。phpwordは、ルートのvendorファイル下に配置され、class PHPWordにパスが通ります(という言い方が正しいかよくわからないけど、オートロードされるということ)。従って、普通に「new $phpword = new \PhpOffice\PhpWord\PhpWord();」でインスタンス生成で、利用できます。
使い方
※createWrite部分で誤りがあったため修正(2014/6/12)
//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でphpoffice/phpwordを利用するメモ | Lunarian's Blogを参照した方が幸せになれるかもしれません。 […]