- - PR -
ASPからWordファイルの操作
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-05 11:52
以前ASPからExcelを次のようにして、
--- Con = "Driver={Microsoft Excel Driver (*.xls)};DBQ=sample.xls;ReadOnly=False;" Set cn = Server.CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=sample.xls;Extended Properties=""Excel 8.0; HDR=No;""" .Open End With ---- 接続し、ファイル操作を行ったのですが、今度はWordに接続して「テンプレートのWordファイル」に内容を記入するよう操作を行いたいのですが、方法が良く分かりません。 また、WordファイルにADO接続するのではなく、差し込み印刷等の方法で印刷するのも考えましたが、こちらも実現には至っておりません。 いずれかの方法、または全く別の不法で、ASPからWordファイルにアクセスし、HPの入力内容を記述するための方法をご存知の方がいらっしゃられましたら、返信のほどよろしくお願いいたします [ メッセージ編集済み 編集者: Hymm 編集日時 2005-07-05 16:10 ] | ||||||||
|
投稿日時: 2005-07-06 08:01
WORDにADODB経由で接続することは出来ないので、OLEオートメーションかVisual Studio Tools for Office(VSTO)を用いることになるでしょう。MS-WORDを制御している例は珍しいですが、同様の方法でExcelを操作している例はこの掲示板でも度々あります。
ただMS-WORDの機能を呼び出す実装の場合、複数のインスタンスが同時に起動したときなど動作に不安もあります。WORDに頼らない別の方法を検討した方が良いのではないかと思います。 | ||||||||
|
投稿日時: 2005-07-06 13:41
ご回答有難うございました。
OLEオートメーション自体、よく理解していないため、おかしいことを言ってしまっているかもしれませんが、これを使用して問題を解決するためには、IISサーバ側にWordがインストールされていないと、 CreateObject("Word.Document")、またはCreateObject("Word.Application.11") などの宣言時にエラーが発生すると思われますがどうでしょうか? サーバ側にMicroSoft Officeをインストールする予定は今の所ありません。 Visual Studio Tools for Officeについては、まだ調べておりませんので、これから調べて回答します。 | ||||||||
|
投稿日時: 2005-07-06 14:40
ASPでよければこんな感じでできます。
クライアントにワードがインストールされている必要があります。 <script language="VBScript"> <!-- option explicit dim objWord,wordFile,myRange dim objWordDoc,ret set objWord = CreateObject("Word.Application") wordFile = "TEST.doc" objWord.Documents.Open(wordFile) set objWordDoc = objWord.ActiveDocument 'objWord.Documents(wordFile).Activate objWord.Visible = true 'ブックマークbookmark1に文字を追加 'set myRange = objWord.Documents(wordFile).Bookmarks("bookmark1").Range set myRange = objWordDoc.Bookmarks("bookmark1").Range myRange.text = "文字11111" 'objWord.ActiveDocument.Save 'objWordDoc.Save 'objWord.Documents.Close 'objWord.Quit 'set objWord = nothing //--> </script> | ||||||||
|
投稿日時: 2005-07-06 15:47
お返事有難うございました。 実行してみた所
の部分で、 「エラー:ActiveXコンポーネントはオブジェクトを作成できません。:'Word.Application'」 と表示されました。 これは、IIS側の設定をどのようにすれば、回避出来る現象でしょうか? また、この構文でクライアントにWordがインストールされていないと動かないという点も良く分かりません。 このファイルをHtmlにして、クライアント上で実行すれば動くとは思いますが、IISサーバ上で処理を行う方法を探しています。 | ||||||||
|
投稿日時: 2005-07-06 16:03
問題解決の為の回答ではありませんが・・
インストールしてなければ、サーバサイドでCreateObject()出来ない気がします・・ 甕星さんもおっしゃっていますが、 サーバサイドでのOffice使用は、MS的には非推奨だったと思いますよ。
ご自身が後段で記述されていますように、 クライアント上でVBScriptが実行されるわけですから、 クライアントにWordが入っていないと、CreateObjectでコケますよね。 | ||||||||
|
投稿日時: 2005-07-06 16:20
引用:
Wordに接続して「テンプレートのWordファイル」に内容を記入するよう操作を行いたい でしたので、 オープンするワードファイルをサーバーに置いて、これを、 set myRange = objWordDoc.Bookmarks("bookmark1").Range myRange.text = "<%= サーバー側の変数 %>" とすると、ワードファイルのブックマークbookmark1にサーバー側で作成した 値が代入されます。 こういうことではないですか。 | ||||||||
|
投稿日時: 2005-07-06 16:25
ご回答有難うございました。
結局、サーバ側にMicroSoft Officeをインストールする予定はありませんので、
これは実現不可能と言う事でしょうか? OLEオートメーションを使用することは出来ませんので、「差し込み印刷」での実現も不可能ということですね。
今までの話は私にも十分理解出来ましたが、この部分は理解できません。 ASPは、IISサーバ上でVBScriptが実行され、その結果がクライアントに返ってくると認識していました。 ちなみに、クライアントにはWordはインストールされております。 これは、例えば、 ASPでWordファイルを編集するようなHtmlファイルを作成して、それをクライアントにダウンロードする形を取り、クライアント上でダウンロードされたHtmlファイルを実行することで、Wordファイルの編集を実現すると言う方法もある。 という意味なのでしょうか? |
1|2|3
次のページへ»