※ ChatGPTを利用し、要約された質問です(原文:ASP.NETでWord読込→編集→テキスト取得)
ASP.NETでWord読込→編集→テキスト取得
このQ&Aのポイント
ASP.NETでWord文書を読み込み、編集してテキストを取得する方法について教えてください。
VisualStudio2010とC#を使用して、ASP.NETでWebアプリケーションを作成しています。Word文書を子画面で表示し、編集した後にテキストを取得したいです。
Word Objectを操作する経験があるので、Word Objectを取得する方法や一旦中間ファイルに保存する方法についてアドバイスをいただきたいです。
下記のような処理をしようと悪戦苦闘中です。
[メイン画面(IE)]ボタンクリックで子画面開く
[子画面(IE)]MicrosoftWord文書とOKボタン表示
→文書編集後、ボタンクリックでテキストを取得(できればHTML形式で)
→メイン画面に取得テキストを表示
<開発環境>
VisualStudio2010
C#
Web Applicationを作るのは初めてで、いろいろ勉強しながら、子画面にWordファイルを
表示するところまでたどり着きました。
・子画面にIFRAMEを挿入し、別のASPXファイルをSRCに設定
・そのASPXのPage_Loadで、
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.ContentType = "application/msword";
Response.WriteFile(パラメータで渡されたファイルパス);
Response.Flush();
Response.End();
として、Word文書を表示
ここから先が分からないのです。
子画面のボタンクリック時に、何とかして表示中のWord文書のテキストを取得できないで
しょうか。
Windows Forms ApplicationでWord Objectを操作するプログラムなら経験があるので、
Word Objectを取得できれば後は何とかなると思うのですが...
IFRAMEに表示しているWordのObjectが取得不可能であれば、
・子画面のボタンクリックで一旦中間ファイルに保存
・メイン画面の処理で中間ファイルからWordObject生成
みたいな感じかなとも思うのですが、「一旦中間ファイルに保存」というのはどうすれば
いいのでしょうか?
どなたかお知恵をお貸しください。よろしくお願いします。
お礼
回答ありがとうございます。 仰るとおり、Wordでの操作はクライアント側なので、編集後に 「サーバへアップロード」という手順が必要になるのですね。 よく考えたら、サーバサイドのプログラムでWord Objectを CreateObjectみたいな事になると、それはサーバ側のOfficeを 使用するという事で、好ましくないという記事を見ました。 http://support.microsoft.com/kb/257757/ja Web Applicationの基本的な考え方がまだよく理解できていない ようです。 ・ダウンロードボタンでローカルへダウンロード ・クライアント側でWordを起動してもらい編集→上書き保存 (もしくは今表示までは出来ているのでそこで編集してもらう?) ・アップロードボタンでサーバへアップロード→表示 みたいなイメージかと考えています。 ユーザ管理については、ログインでユーザごとに権限を設定する等 の管理を考えています。 アドバイスいただき、ありがとうございました。