新しいInterop Wordバージョン15.0.0.0を使用して、新しいWord文書を作成し、テキストを挿入して保存します。Word文書SaveAs2形式wdFormatDocument97
私は、次のコマンドを使用してそれを保存しています:
document.SaveAs2(wordFilePath);
文書がフォーマットDOCXに保存されます。
しかし、私は、次のコマンドを使用して、それを保存していたとき:
document.SaveAs2(wordFilePath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument97);
文書は、一見のWord-97 DOC(Wordの-97 DOCのアイコンとタイプして、Windowsのエクスプローラの表示、それを)、それとして保存されます実際にはDOCXとして内部的に保存されています(これは対応するDOCXと同じサイズですが、Word-2016で開いてSaveAsを選択すると、デフォルトの保存形式はDOCXです)。
文書を実文書-97形式で保存するにはどうすればよいですか?
ここでタイプ指定したファイルパスの延長(DOCX対DOC)に依存し、新しいWord文書を作成するために使用される機能は、です:
public static void TextToMsWordDocument(string body, string wordFilePath)
{
Microsoft.Office.Interop.Word.Application winword = new Microsoft.Office.Interop.Word.Application();
winword.Visible = false;
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);
if (body != null)
{
document.Content.SetRange(0, 0);
document.Content.Text = (body + System.Environment.NewLine);
}
if (System.IO.Path.GetExtension(wordFilePath).ToLower() == "doc")
document.SaveAs2(wordFilePath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument97);
else // Assuming a "docx" extension:
document.SaveAs2(wordFilePath);
document.Close(ref missing, ref missing, ref missing);
document = null;
winword.Quit(ref missing, ref missing, ref missing);
winword = null;
}
そして、ここでは、この関数を呼び出すために使用するコードです:
TextToMsWordDocument("abcdefghijklmnopqrstuvwxyz", "text.doc");
TextToMsWordDocument("abcdefghijklmnopqrstuvwxyz", "text.docx");
これは文書ベースのアドインでこれを複製しようとしましたが、あなたが言及したのと同じ症状を示さなかったし、zip構造はdocx形式とはかなり異なっています。最小限で完全で検証可能な例を投稿する必要があるかもしれません。 http://stackoverflow.com/help/how-to-ask – Chris
またどのバージョンのWord?私は2010年にテストしました。 – Chris
@Chris:Word-2016とInterop.Wordバージョン15.0.0.0を使用しています。私の質問にこれらの詳細と短いコードを追加しました。ありがとう。 – Ofer