0

私はMicrosoft.Office.Interop.Word名前空間を実験して、docxファイルの操作、具体的にはプログラムによるそれらのマージを行っています。

いくつかの機能を試すために簡単なテストハーネスを作成しましたが、ファイルが実行ディレクトリにあるにもかかわらず、ファイルが見つからないというエラーが発生します。

私がやろうとしているのは、それぞれdoc1.docxとdoc2.docxの2つのdocxファイルをマージすることです。繰り返しになりますが、この時点でこの機能を試しているだけなので、単純なC#コンソールアプリを作成し、次のようにしました。

Wordを使用=Microsoft.Office.Interop.Word;

//and in my method:
object defaultTemplate = @"Normal.dotm";
object missing = System.Type.Missing;
object outputFile = "out.docx";


Word.Application wordApplication = new Word.Application();
//using the default Word template
Word._Document wordDocument = wordApplication.Documents.Add(defaultTemplate);
Word.Selection selection = wordApplication.Selection;
//add files manually. THIS is where things are failing
selection.InsertFile("doc1.docx");
selection.InsertFile("doc2.docx");

「このファイルが見つかりませんでした」というメッセージで例外が発生します。InsertFile()の最初の呼び出しで。このプログラムが実行されているデバッグディレクトリにファイルが存在することは確かです。MSDNは、パラメータにパスを指定しない場合、現在のディレクトリを使用することを明示的に示しています。テンプレートNormal.dotmが正常に検出されます。私はここで単純な何かを見逃しているように感じますが、運がないまま30分以上それをいじっています。私がここで何をすべきかについて誰かが何か提案がありますか?読んでくれてありがとう!

4

2 に答える 2

1

パスが利用可能であることを確認してください。現在のディレクトリが目的のものであることを確認するために使用GetCurrentDirectory()します。それ以外の場合はフルパスを使用します。

于 2012-07-20T18:01:33.957 に答える
1

また、デフォルトのファイルパスを設定する必要がある場合もあります。

MyWordApp.Application.Options.set_DefaultFilePath()
于 2012-07-20T18:06:33.890 に答える