"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment récupérer les noms de feuilles Excel dans leur ordre d'origine en utilisant OLEDB?

Comment récupérer les noms de feuilles Excel dans leur ordre d'origine en utilisant OLEDB?

Publié le 2025-02-26
Parcourir:688

How to Retrieve Excel Sheet Names in Their Original Order Using OLEDB?

Récupération des noms de feuille Excel dans l'ordre des feuilles en utilisant oledb

La tâche de récupérer les noms de feuilles à partir d'un manuel Excel est couramment rencontré dans la programmation. Cependant, l'obtention de ces noms dans l'ordre, ils sont définis dans la feuille de calcul peuvent être difficiles lors de l'utilisation d'Oledb.

Définition du problème

en réorganisant les noms de feuille de manière alphabétique, OledBconnection. GetoLedBschemateable () ne parvient pas à fournir des noms de feuilles dans l'ordre souhaité. Cela entrave la capacité de l'utilisateur à spécifier la récupération de données en fonction du nom ou de l'index de la feuille, conduisant à la confusion.

La solution à l'aide de la boucle imbriquée

Une approche implique itérer à travers les feuilles séquentiellement séquentiellement séquentielles De la feuille 0 au nombre de feuilles moins 1. Cela garantit la préservation de l'ordre des feuilles.

implémentation Utilisation d'Oledb

Si l'utilisation des classes d'interopérations de bureau n'est pas possible, une solution utilisant OLEDB est disponible:

/// 
/// Retrieves excel sheet names from an excel workbook.
/// 
/// The excel file.
/// String[]
private String[] GetExcelSheetNames(string excelFile)
{
    OleDbConnection objConn = null;
    System.Data.DataTable dt = null;

    try
    {
        // Connection String
        String connString = "Provider=Microsoft.Jet.OLEDB.4.0;"   
          "Data Source="   excelFile   ";Extended Properties=Excel 8.0;";

        // Create connection and open connection to database
        objConn = new OleDbConnection(connString);
        objConn.Open();

        // Get data table containing schema guid
        dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        if(dt == null)
           return null;

        // Initialize String[] to store sheet names.
        String[] excelSheets = new String[dt.Rows.Count];
        int i = 0;

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

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

Ce code se connecte au fichier Excel, récupère le tableau de données contenant des noms de feuilles et remplit une chaîne [] avec ces noms dans l'ordre dans lesquels ils apparaissent dans la feuille de calcul.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3