Home > Software design >  Get first sheet name within excel workbook
Get first sheet name within excel workbook

Time:01-11

I'm trying to get the name of the first sheet of an excel workbook.

Instead of getting the sheets name in the order as it appears in the Excel workbook it appears sorted alphabetically.

Does anyone have an idea to get the names not sorted??

CodePudding user response:

private String[] GetExcelSheetNames(string excelFile)
{
  OleDbConnection objConn = null;
  System.Data.DataTable dt = null;

  try
  {
    // Connection String. Change the excel file to the file you
    // will search.
    String connString = "Provider=Microsoft.Jet.OLEDB.4.0;"   
        "Data Source="   excelFile   ";Extended Properties=Excel 8.0;";
    // Create connection object by using the preceding connection string.
    objConn = new OleDbConnection(connString);
    // Open connection with the database.
    objConn.Open();
    // Get the data table containg the schema guid.
    dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
 
    if(dt == null)
    {
      return null;
    }

    String[] excelSheets = new String[dt.Rows.Count];
    int i = 0;

    // Add the sheet name to the string array.
    foreach(DataRow row in dt.Rows)
    {
      excelSheets[i] = row["TABLE_NAME"].ToString();
      i  ;
    }

    // Loop through all of the sheets if you want too...
    for(int j=0; j < excelSheets.Length; j  )
    {
      // Query each excel sheet.
    }

    return excelSheets;
  }
  catch(Exception ex)
  {
    return null;
  }
  finally
  {
    // Clean up.
    if(objConn != null)
    {
      objConn.Close();
      objConn.Dispose();
    }
    if(dt != null)
    {
      dt.Dispose();
    }
  }
}

CodePudding user response:

I already get a solution with my question.

      //get sheet number 1 name 
            var excelFile = Path.GetFullPath(llFileName);
            var excel = new Excel.Application();
            var workbook = excel.Workbooks.Open(llFileName);
            var sheet = (Excel.Worksheet)workbook.Worksheets.Item[1]; // 1 is the first item, this is NOT a zero-based collection
            string sheetName = sheet.Name;

Hope it help for the other

  •  Tags:  
  • Related