title: Creating and Saving an Excel File
body: <p>I have the following code that creates a new Excel file in my C# code behind. When I attempt to save the file I would like the user to select the location of the save. </p>
  
  <p>In Method #1, I can save the file my using the workbook SaveCopyAs without prompting the user for a location. This saves one file to the C:\Temp directory.</p>
  
  <p>Method #2 will save the file in my Users\Documents folder, then prompt the user to select the location and save a second copy. How can I eliminate the first copy from saving in the Users\Documents folder? </p>
  
  <pre><code>Excel.Application oXL;
  Excel._Workbook oWB;
  Excel._Worksheet oSheet;
  Excel.Range oRng;
  
  try
  {
      //Start Excel and get Application object.
      oXL = new Excel.Application();
      oXL.Visible = false;
  
      //Get a new workbook.
      oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
      oSheet = (Excel._Worksheet)oWB.ActiveSheet;
  
      // *****
      oSheet.Cells[2, 6] = "Ship To:";
      oSheet.get_Range("F2", "F2").Font.Bold = true;
  
      oSheet.Cells[2, 7] = sShipToName;
      oSheet.Cells[3, 7] = sAddress;
      oSheet.Cells[4, 7] = sCityStateZip;
      oSheet.Cells[5, 7] = sContactName;
      oSheet.Cells[6, 7] = sContactPhone;
  
      oSheet.Cells[9, 1] = "Shipment No:";
      oSheet.get_Range("A9", "A9").Font.Bold = true;
      oSheet.Cells[9, 2] = sJobNumber;
  
      oSheet.Cells[9, 6] = "Courier:";
      oSheet.get_Range("F9", "F9").Font.Bold = true;
      oSheet.Cells[9, 7] = sCarrierName;
  
      oSheet.Cells[11, 1] = "Requested Delivery Date:";
      oSheet.get_Range("A11", "A11").Font.Bold = true;
      oSheet.Cells[11, 2] = sRequestDeliveryDate;
  
      oSheet.Cells[11, 6] = "Courier Acct No:";
      oSheet.get_Range("F11", "F11").Font.Bold = true;
      oSheet.Cells[11, 7] = sCarrierAcctNum;
      // *****
  
      Method #1
      //oWB.SaveCopyAs(@"C:\Temp\" + sJobNumber +".xls");
  
      Method #2
      oXL.SaveWorkspace(sJobNumber + ".xls");
  }
  catch (Exception theException)
  {
      String errorMessage;
      errorMessage = "Error: ";
      errorMessage = String.Concat(errorMessage, theException.Message);
      errorMessage = String.Concat(errorMessage, " Line: ");
      errorMessage = String.Concat(errorMessage, theException.Source);
  }
  </code></pre>