Creating and Saving an Excel File

20,850

Solution 1

You can use the savefiledialog and have the user select their location, then u can use that location when u call oWB.SaveCopyAs(userselectedlocation)

Solution 2

Use a SaveFileDialog class to get the desire path from the user:

http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog.aspx

Solution 3

Why aren't you using SaveFileDialog? See How to: Save Files Using the SaveFileDialog Component

--EDIT--

If its asp.net app, then this discussion might help to produce a save file dialog.

Share:
20,850
Kris
Author by

Kris

Updated on June 25, 2020

Comments

  • Kris
    Kris almost 4 years

    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.

    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.

    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?

    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);
    }