- ベストアンサー
submitしたデータをwordに書き込み
submitしたデータをwordに書き込み 通常、textareaの内容をsubmitし、txtファイルに書き込むのですが、 スタイルなどを保持したままで、wordに書き込むことは可能でしょうか? 空のwordファイルを用意し、txtに書き込むのと同じ要領でやってみたのですが、 開くときにデコードの形式を確認されたり、 枠がなく全画面で表示されてしまったりという状態です。 全画面で表示されるのは特に問題はないのですが、できればwordファイルには、 フッターとヘッタ―を含めたいのです。 html,php,javascript,cgiなら少しわかりますので、 可能でしたらご教授願います。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
文章力がなく、回答が下手ですいません。 「投稿formの<textarea>に入力された内容をsubmit」 =>これは、別にHTMLだけで出来ますformの@actionを送信先のCGIにするだけです。 「書き込み用CGIでwordファイルにsubmitされたデータを書き込む」 =>送信先のCGIがPHPなら、No.1回答のようにwordを操作できるという例を書いたつもりです。 submitされたデータは、POSTなら、$_POST['name']に入っているので、これを書き込めばよいです。 でも、文字コードのエンコードとか、改行処理とかも必要になると思われますが... ※詳細はPHPのサイトでお勉強してください。 「wordファイルの印刷とかセーブとかのwordの操作」 =>wordアプリケーションオブジェクトの具体的な操作については、まず、wordのマクロ(VBA)を使った操作について十分習熟してください。 マクロの操作自動記録機能(wordにあったかなあ?)とかで吐き出されるコードを研究すればよいかと。 そして、wordアプリケーションオブジェクトのクラス、プロパティ、メソッドを十分使いこなせるようになれば、それをPHPからCOMインターフェースで操作するだけです。 ※Excelやpdfの例は検索すればあちこち見つかりますが、WordやPowerPointの例は皆無ですね。 ※よく知りませんが、マイクロソフトの.NETというのを使えば、PHPやjavascript使うよりもっとすっきり、簡単にできるのかも.....。
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
状況が、いま一つはっきりわかりませんが、 サーバーがWindows系で、PHPにWindows 用 PHP 拡張モジュールの「COM」 をセットアップしてあれば、javascriptやVBSのActiveXオブジェクトの 用にWordアプリケーションを弄れます。 http://www.php.net/manual/ja/book.com.php 例 <? $word=new COM("word.application") or die("Cannot start word for you"); $word->visible =1; $word->Documents->Add(); $word->Selection->Typetext("送信されてきたテキストをエンコードした文字"); $word->Documents[1]->SaveAs("hoge.doc"); $word->Quit(); ?>
お礼
回答ありがとうございます。 文章力がなく、説明が下手ですいません。 なるべく簡潔に状況を書きますと、 ~用意するもの(それぞれの動き)~ ・フッターとヘッダーのみ記述されたwordファイル ・投稿form(html or phpでtextareaの内容をsubmit) ・書き込み用CGI(wordファイルにsubmitされたデータを書き込み) ~したいこと~ ・wordファイルの印刷。 ・wordファイルの中身は、最初に記述したフッター/ヘッダーと、submitされた内容。 これでわかりますでしょうか?