Ich verwende Microsoft Interop Word Version 15.0.0.0, um ein neues Word-Dokument zu erstellen, Text einzufügen und zu speichern.Word-Dokument SaveAs2 im Format wdFormatDocument97
Wenn ich es mit dem folgenden Befehl bin Sparend:
document.SaveAs2(wordFilePath);
das Dokument im Format DOCX gespeichert wird.
Aber wenn ich es speichern Sie den folgenden Befehl:
document.SaveAs2(wordFilePath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument97);
das Dokument scheinbar wird gespeichert als Word-97 DOC (Windows-Explorer-Anzeige es mit Word-97 DOC-Symbol und Typ), aber es wird wirklich intern als DOCX gespeichert (ich kann das auf zwei Arten sehen: es hat die gleiche Größe wie die entsprechende DOCX, und wenn ich es mit Word-2016 öffne und SaveAs wähle, ist das Standard-Speicherformat DOCX!).
Wie kann ich ein Dokument im echten Dokument-97-Format speichern?
Hier ist die Funktion verwendet, um ein neues Word-Dokument zu erstellen, deren Typ auf der Verlängerung hängt (DOC vs. DOCX) gegebener Dateipfad:
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;
}
Und hier ist der Code verwendet diese Funktion aufzurufen:
TextToMsWordDocument("abcdefghijklmnopqrstuvwxyz", "text.doc");
TextToMsWordDocument("abcdefghijklmnopqrstuvwxyz", "text.docx");
Ich habe versucht, dies mit einem dokumentbasierten Add-in zu replizieren, aber es zeigte nicht die gleichen Symptome, die Sie erwähnen, und die Zip-Struktur unterscheidet sich ziemlich vom docx-Format. Möglicherweise müssen Sie ein minimales, vollständiges, überprüfbares Beispiel veröffentlichen. http://stackoverflow.com/help/how-to-ask – Chris
Auch welche Version von Word? Ich testete 2010. – Chris
@Chris: Ich verwende Word-2016 und Interop.Word Version 15.0.0.0. Diese Details und eine kurze Version meines Codes in meiner Frage hinzugefügt. Vielen Dank. – Ofer