Maison > développement back-end > C++ > Comment puis-je récupérer les noms des feuilles Excel dans leur ordre d'origine à l'aide d'OLEDB ?

Comment puis-je récupérer les noms des feuilles Excel dans leur ordre d'origine à l'aide d'OLEDB ?

Barbara Streisand
Libérer: 2025-01-03 01:16:41
original
254 Les gens l'ont consulté

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

Acquérir des noms de feuilles Excel dans un ordre séquentiel avec OleDb

Dans le domaine des opérations sur les feuilles de calcul, obtenir une liste de noms de feuilles Excel dans le sens précis l’ordre défini dans le classeur peut être une tâche cruciale. Pour y parvenir avec OleDb, une approche spécifique est requise.

À l'origine, l'utilisation de OleDbConnection.GetOleDbSchemaTable() pour récupérer les noms de feuilles a été tentée, mais elle a rencontré un problème : le tri alphabétique. Cela a perturbé l'ordre prévu des noms et a posé un défi pour les mapper aux numéros de feuille correspondants.

Heureusement, il existe une solution qui contourne cet obstacle : parcourir les feuilles de manière séquentielle depuis l'index 0 jusqu'au nombre total de noms. Cela garantit que les noms sont récupérés dans l'ordre souhaité.

Pour ceux qui recherchent une approche basée sur OLEDB, l'exemple de code suivant montre comment récupérer les noms de feuilles Excel dans leur ordre séquentiel :

private String[] GetExcelSheetNames(string excelFile)
{
    // Establish connection parameters
    string connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";

    // Create connection and database linkage
    using (OleDbConnection objConn = new OleDbConnection(connString))
    {
        objConn.Open();

        // Retrieve schema table
        DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

        // Initialize array for sheet names
        String[] excelSheets = new String[dt.Rows.Count];

        // Populate array with sequential sheet names
        int index = 0;
        foreach (DataRow row in dt.Rows)
        {
            excelSheets[index++] = row["TABLE_NAME"].ToString();
        }

        return excelSheets;
    }
}
Copier après la connexion

En employant cette technique, vous pouvez récupérer efficacement les noms des feuilles Excel dans l'ordre exact dans lequel ils apparaissent dans le classeur, permettant ainsi des interactions utilisateur transparentes basées sur le nom ou l'index.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal