使用SaveFileDialog类在C#中保存Excel文件

3

我需要创建并保存一个Excel文件,但不想在代码中指定路径和文件名。因此,我可以使用savefiledialog来显示保存对话框以输入路径和文件名,但我无法正确使用它。

我尝试使用worksheet.saveas,但这个类不会显示保存对话框来输入路径和文件名。

我该如何在保存时弹出保存对话框?


这是一个WinForms还是WPF应用程序吗?或者你是尝试在C#库/控制台应用程序中完成它? - Shiva
1个回答

6
基本的机制是这样的:
public void SaveExcelWorkBook()
{
   OpenFileDialog openDlg = new OpenFileDialog();
   openDlg.InitialDirectory = @"C:\";
   openDlg.ShowDialog();
   string path = openDlg.FileName;

   if (openDlg.ShowDialog() == DialogResult.OK)
   {
      try
      {
         Application excelApp = new Application();
         Workbook workBook = excelApp.Workbooks.Open(path);
         Worksheet workSheet = (Worksheet)workBook.Worksheets[1];

         // Do your work here inbetween the declaration of your workbook/worksheet  
         // and the save action below.

         workBook.SaveAs(/*path to save it to*/);  // NOTE: You can use 'Save()' or 'SaveAs()'
         workBook.Close(); 
      }

      catch (Exception ex)
      {
      }
   }
}

我认为我还应该提到Interop对象是非托管的,所以在调用.Close()后,您需要确保释放它们。以下是一个示例:

Marshal.ReleaseComObject(workBook);

这里有两个关于使用Excel的绝佳教程,分别是这里这里。祝好运!


嗨,Brian,谢谢你的回答,但我希望用户输入文件路径和名称。因此,它需要显示像在Excel程序中单击“另存为”按钮时那样的框。 - renato
2
那是一个 FileDialog。C# 也有一个来处理它。 - Brian
我已经编辑了我的答案,以包含您在评论中提到的内容。 - Brian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接