在C#中使用savefiledialog类保存excel文件

问题描述 投票:0回答:2

我需要创建并保存一个Excel文件,而无需在代码中告知路径和文件名。所以我可以使用 savefiledialog 显示保存框来输入路径和文件名,但我无法正确使用它。 我尝试使用 worksheet.saveas 但此类不显示用于输入路径和文件名的保存框。 如何使用该保存框保存 Excel 文件?

c# excel
2个回答
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)
      {
      }
   }
}

我想我还应该提到互操作对象是非托管,因此,您需要确保在调用

.Close()
后释放它们。 这是一个例子:

Marshal.ReleaseComObject(workBook);

有两个很棒的 Excel 使用教程这里这里。 祝你好运!


0
投票

对于这段代码,我写了一个错误: 工作簿 workBook = excelApp.Workbooks.Open(路径);

对于这行代码和参考工作簿,我现在应该做什么来解决这个问题?

© www.soinside.com 2019 - 2024. All rights reserved.