テキストを Word ドキュメント (非 XML) に書き込み、それをファイルに保存するコードがあります。今、ドキュメントが作成され、ユーザーがドキュメントを保存するように求められるように変更しようとしています。
これは、Word 文書を作成するためのコードです。
object miss = System.Reflection.Missing.Value;
object Visible = true;
object start1 = 0;
object end1 = 0;
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
Document aDocument = WordApp.Documents.Add(ref miss, ref miss, ref miss, ref miss);
Range rng = aDocument.Range(ref start1, ref miss);
try
{
rng.Font.Name = "Georgia";
rng.InsertAfter("Report Header!");
object filename = @"C:\Users\test.doc";
aDocument.SaveAs(ref filename, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
object saveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdPromptToSaveChanges;
object originalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdWordDocument;
object routeDocument = true;
((_Document)aDocument).Close(saveChanges, originalFormat, routeDocument); //to close the document process (winword.exe)
//WordApp.Visible = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
これは期待どおりに機能します。Word 文書を作成し、ユーザーに対して開きます。SaveFileDialog を使用してファイルを保存することについて Microsoft からこのリンクを読んでいますが、それを自分の状況に適用する方法が完全にはわかりません。SaveFileDialog は書き込み先のストリーム オブジェクトを提供するので、Word ファイルから読み取ってストリームに書き込む必要がありますか? だとしたら、どうやってコーディングすればいいのかわからないのですが、それは遠回しな方法のようです。作成した Word 文書を直接 SaveFileDialog に渡す方法はありますか?