title: C# - How to copy a single Excel worksheet from one workbook to another?
body: <p>I have a need to copy a worksheet from one workbook into another and I'm a bit stuck.  The premise is that I have a "master" workbook that stores the templates for a number of reports and I then need to create a blank copy of a specific worksheet and add it into a new workbook.</p>
  
  <p>This is what I have so far:</p>
  
  <pre><code>private void CreateNewWorkbook(Tables table)
  {
      Excel.Application app = null;
      Excel.Workbook book = null;
      Excel.Worksheet sheet = null;
  
      try
      {
          string startPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
          string filePath = System.IO.Path.Combine(startPath, "sal1011forms.xls");
          Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
  
          app = new Excel.Application();
          book = app.Workbooks.Open(filePath);
          sheet = (Excel.Worksheet)book.Worksheets.get_Item((int)table + 1);
  
          sfd.AddExtension = true;
          sfd.FileName = table.ToString() + ".xls";
          sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
  
          if (sfd.ShowDialog() == true)
          {
              sheet.SaveAs(sfd.FileName);
          }
      }
      finally
      {
          if (book != null)
          {
              book.Close();
          }
          if (app != null)
          {
              app.Quit();
          }
          this.ReleaseObject(sheet);
          this.ReleaseObject(book);
          this.ReleaseObject(app);
      }
  }
  </code></pre>
  
  <p>The only problem I'm having at the moment is that when I call .Save() on the worksheet, it saves ALL of the worksheets from the original workbook into a new workbook.  Any ideas on how to correct this?</p>
  
  <p>Thanks in advance,<br/>
  Sonny</p>