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.
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