1

Microsoft Word を使用して、クライアント マシンのサーバーにある Word 文書を開く必要があります。ソリューションはローカルで機能していますが、サーバーに展開すると、サーバーで winword.exe が開始されるだけです。相互運用機能または JavaScript を使用してこれを行うことは可能ですか?

これが今までのコードです

Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

object file = FilePath + FileName;
lblError.Text = lblError.Text + file.ToString(); 
object readOnly = false;
object objTrue = true;
object missing = System.Reflection.Missing.Value;
object emptyData = string.Empty;
wordApp.Visible = true;
Microsoft.Office.Interop.Word.Document aDoc                         =
wordApp.Documents.Open(ref file,
         ref missing, ref readOnly,
         ref missing, ref missing, ref missing,
         ref missing, ref missing, ref missing,
         ref missing, ref missing, ref objTrue);

aDoc.Activate();
4

4 に答える 4

2

クライアントとサーバーが 2 つの異なるマシンで実行されていることに注意する必要があります。サーバーは、クライアント マシンで実行されているプログラムを開始できません。

また、参考までに、ASP.NET アプリケーションから Office オートメーションを使用しないでください。これらの API は、デスクトップ アプリケーションで使用するために設計されました。それらは正しく動作せず、サポートされておらず、Office ライセンスに違反する可能性さえあります。

于 2012-07-04T20:31:34.523 に答える
0

DocX クラスを使用して、単語ドキュメントを作成できます。次に、Response.Write() メソッド (ドキュメントの拡張子が .docx であることに注意してください) を使用して、マシンにドキュメントをダウンロードします。

于 2015-02-22T10:04:35.827 に答える
0

ローカルで動作している理由は、そうではないからです。何が起こっているかというと、サーバーがドキュメントを開いていますが、ローカル マシンがサーバーとして機能しているため、ファイルが開いているように見えます。

簡単な解決策の 1 つは、ユーザーがファイルをダウンロードして編集し、アップロードして戻すことです。

于 2012-07-04T20:32:17.120 に答える
0
<script language="javascript" type="text/javascript"> 
    function openDokument(dokument){ 
        var objAppl;

        try{ 
            objAppl = GetObject("","Word.Application"); 
            objAppl.Documents.open(dokument); 
        } 
        catch(exception){ 
            objAppl = new ActiveXObject("Word.Application");
            objAppl.Visible = true;
            alert(dokument);
            objAppl.Documents.open(dokument);
            objAppl.Activate(); 
        }    
        objAppl = null;           
    }
</script>
于 2012-07-05T07:45:12.393 に答える