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