How to name excel sheets using interop

682 views Asked by At

I made some sheets in an Excel file. I made a lot at the same time with this code:

newSheet2 = (Microsoft.Office.Interop.Excel._Worksheet)newWorkbook_First.Sheets.Add(Type.Missing,Type.Missing,5,Type.Missing);

...But I don't know how to name them individually. I thought it had to do it this way:

newSheet2[2].name = "hello"

But this gave an error. How can I do this?

        private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
        private static Workbook newWorkbook_First = null;
        private static _Worksheet newSheet2 = null; 

public void excel_create(String path)
        {
            try
            {
                appExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
                appExcel.Visible = true;
                newWorkbook_First = appExcel.Workbooks.Add(1);
                newSheet2 = (Microsoft.Office.Interop.Excel._Worksheet)newWorkbook_First.Sheets.Add(Type.Missing,Type.Missing,5,Type.Missing);
                //How to name the sheets now? 
            }
            catch (Exception e)
            {
                Console.Write("Error");
            }
            finally
            {
            }
        }
2

There are 2 answers

0
Nissim On

You were close, use 'Name', not 'name':

Application.ActiveSheet.Name="myName";
1
Ajit Pawar On

Please Go through below example for reference.

static void Main(string[] args)
    { 
        Microsoft.Office.Interop.Excel.Application oXL;
        Microsoft.Office.Interop.Excel._Workbook oWB;
        Microsoft.Office.Interop.Excel._Worksheet oSheet;
        Microsoft.Office.Interop.Excel.Range oRng;
        object misvalue = System.Reflection.Missing.Value;
        try
        {
            //Start Excel and get Application object.
            oXL = new Microsoft.Office.Interop.Excel.Application();
            oXL.Visible = true;

            //Get a new workbook.
            oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(""));
            oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.Sheets.Add();

            //Add table headers going cell by cell.
            List<string> header=new List<string>();
            header.Add("steve");
            header.Add("JOb");
            oSheet.Cells[1, 1] = header[0];
            oSheet.Cells[1, 2] = header[1];
            oSheet.Cells[1, 3] = "Salary";
            oSheet.Cells[1, 4] = "Token 1 Rs";

            //Format A1:D1 as bold, vertical alignment = center.
            oSheet.get_Range("A1", "D1").Font.Bold = true;
            oSheet.get_Range("A1", "D1").VerticalAlignment =
                Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;

            // Create an array to multiple values at once.
            string[,] saNames = new string[5, 2];

            saNames[0, 0] = "John";
            saNames[0, 1] = "Smith";
            saNames[1, 0] = "Tom";
            saNames[4, 1] = "Johnson";

            //Fill A2:B6 with an array of values (First and Last Names).
            oSheet.get_Range("A2", "B6").Value2 = saNames;

            //Fill C2:C6 with a relative formula (=A2 & " " & B2).
            oRng = oSheet.get_Range("C2", "C6");
            oRng.Formula = "=A2 & \" \" & B2";

            //Fill D2:D6 with a formula(=RAND()*100000) and apply format.
            oRng = oSheet.get_Range("D2", "D6");
            oRng.Formula = "=RAND()*100000";
            oRng.NumberFormat = "$0.00";

            //AutoFit columns A:D.
            oRng = oSheet.get_Range("A1", "D1");
            oRng.EntireColumn.AutoFit();

            oXL.Visible = false;
            oXL.UserControl = false;

            oWB.SaveAs("c:\\test506.xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
        false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

            oWB.Close();
        }
        catch (Exception ex)
        {

        }