【发布时间】:2014-09-29 23:09:41
【问题描述】:
我正在尝试将一些文本从 RichTextBox 导出到 Word 应用程序。我大部分都弄清楚了,但是如果文件名相同,我不知道如何禁用覆盖功能。我发现了一些帖子,他们希望在不提示用户的情况下在保存时启用覆盖,但是尝试与这些解决方案相反的解决方案并没有解决:(我想以这样的方式编码,以便 Word 会提示用户如果已经有一个具有给定文件名的文件。
代码sn-p在下面
private void BtnExportToWord_Click(object sender, EventArgs e)
{
string fileName = "abc123";
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
folderBrowser.ShowDialog();
string folderLocation = folderBrowser.SelectedPath;
string fileNameWithPath = string.Format("{0}\\{1}", folderLocation, fileName );
string rtf = fileNameWithPath + ".rtf";
string doc = fileNameWithPath + ".doc";
richTextBox1.SaveFile(rtf);
var wordApp = new Word.Application();
/* none of these modes help
wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsAll;
wordApp.DisplayAlerts = Word.WdAlertLevel.wdAlertsMessageBox; */
var document = wordApp.Documents.Open(rtf);
document.SaveAs(doc, Word.WdSaveFormat.wdFormatDocument);
document.Close();
wordApp.Quit();
File.Delete(rtf);
}
我在这里缺少什么?
ps。类似帖子:disabling overwrite existing file prompt in Microsoft office interop FileSaveAs method 那里的答案显示 DisplayAlert 是一个布尔值,但我的 VS Intellisense 显示它需要一个 WdAlertLevel 类型的枚举。为什么我的默认不提示?不同的版本?
【问题讨论】:
标签: c# office-interop