speichern word-Dokument wurde dynamisch erstellt mit SaveFileDialog?
Ich habe code, der schreibt den text in ein Word-Dokument (nicht-XML) und speichert Sie in einer Datei. Nun, ich versuche es so zu modifizieren, dass das Dokument wird erstellt und der Benutzer wird dann aufgefordert, das Dokument zu speichern.
Dies ist der code für die Erstellung des Word-Dokuments:
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);
}
Dies funktioniert wie erwartet; er erstellt ein Word-Dokument und öffnet es für die Benutzer. Ich lese dieser link von Microsoft zum speichern von Dateien mit dem SaveFileDialog, aber ich bin mir nicht ganz sicher, wie Sie Sie anwenden, um meine situation. Seit dem SaveFileDialog stellt ein stream-Objekt zu schreiben, sollte ich lese aus der Word-Datei und schreiben in den stream? Wenn das der Fall ist, ich bin mir nicht sicher, wie es code, aber das scheint ein Umweg. Gibt es eine Möglichkeit, übergeben Sie das erstellte Word-Dokument direkt an den SaveFileDialog?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den SaveFileDialog könnte verwendet werden, einfach zu geben, Ihrem Benutzer eine Schnittstelle, um einen Ordner auszuwählen und ein name. Dann ist es bis zu Ihnen, um die Datei zu speichern.
Die Methode, die Sie erwähnen in Ihrer Frage ist dokumentiert durch die MSDN in diesem Artikel, aber in deinem Fall ist praktischer zu lassen, die MSWORD application müssen Sie die speichern-operation auf die Datei.
"The best overloaded match for for Microsoft.Office.Interop._Document.SaveAs(ref object, ref object,......) has some invalid arguments"
ich fixiert diesen Fehler durch ändernref docName
zu(object) docName
. Ist das eine geeignete Lösung?