问题
Just wondering if anyone knows how to not save a document after creation when using Microsoft.Office.Interop.Word.
Basically i am using mail merge to print off a report from c#, the document get made, values are passed to it no problem and i can then print it without any issues, however, I only need to print the document, I do not need to save a copy on the computer.
Once i have passed all the values to the document, i use the following code to print and close the document:
wordDoc.PrintOut();
wordDoc.Close();
wordApp.Application.Quit();
However, this prints the document and then the 'Save' dialog pops up, asking where to save the document. I dont want this as clicking cancel produces an error (and requires another unwanted interaction from the user), and i dont need to save the file.
Any ideas?
Using Visual Studio 2012, .NET 4.0, and i have tried using the following files types for the office document: .doc, .dot, .docx, .dotx.
回答1:
You can pass SaveChanges
parameter as wdDoNotSaveChanges
to the Close
method to skip the saving part.
Have a look at:
how to close a running instance of Word document? (C#)
MSDN Reference.
回答2:
I know this is a very late response to Johns question, but I also needed to close an edited document without having that save dialog displayed.
I found this method worked perfectly for me:
// Tells the application not to save changes
((_Application)wordDoc.Application).Quit(false);
回答3:
How about suppressing alerts?
Word.Application word = new Word.Application();
word.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
来源:https://stackoverflow.com/questions/15231923/how-to-not-save-documents-using-microsoft-office-interop-word