使用SaveFileDialog和Excel.SaveAs时,复制“已存在”对话框

时间:2013-02-18 21:06:43

标签: .net excel-interop savefiledialog

我正在以编程方式创建一个带有Microsoft.Office.Interop.Excel框架的Excel文件。当需要保存时,我想让用户选择命名和保存位置,因此我使用的是System.Windows.Forms.SaveFileDialog。一切都运行良好,除非用户选择已存在的文件名,然后SaveFileDialog.ShowDialog()Excel.Application.SaveAs()都提出“此文件已存在 - 您确定要覆盖吗?”警告,当然不需要2。我看不出有办法压制他们中的任何一个。解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

它可能满足您的要求。

        try
        {
            Microsoft.Office.Interop.Excel.Application my_app = null;
            Microsoft.Office.Interop.Excel.Workbook my_book = null;
            Microsoft.Office.Interop.Excel.Worksheet my_sheet = null;
            Microsoft.Office.Interop.Excel.Range rng = null;
            object missing = Type.Missing;

            my_app = new Microsoft.Office.Interop.Excel.Application();
            my_book = my_app.Workbooks.Add(missing);
            my_sheet = (Microsoft.Office.Interop.Excel.Worksheet)my_book.ActiveSheet;

            rng = my_sheet.get_Range("A1", missing);
            rng.Value2 = "Welcome Man";

            SaveFileDialog s = new SaveFileDialog();
            s.ShowDialog();

            if (s.OverwritePrompt)
            {
                my_book.SaveCopyAs(s.FileName);
                my_book.Close(false, s.FileName, missing);

            }
            else
            {
                my_app.Save(s.FileName);
                my_book.Close(true, s.FileName, missing);
            }

        }
        catch
        {

        }