OleDb を使用して Excel シート名を順番に取得する
スプレッドシート操作の領域で、Excel シート名のリストを正確に取得するワークブックで定義された順序は重要なタスクとなる場合があります。 OleDb でこれを実現するには、特定のアプローチが必要です。
当初は、OleDbConnection.GetOleDbSchemaTable() を利用してシート名を取得しようとしましたが、アルファベット順の並べ替えという問題が発生しました。これにより、名前の意図された順序が崩れ、対応するシート番号に名前をマッピングする際に問題が発生しました。
ありがたいことに、この障害を回避する解決策が存在します。つまり、インデックス 0 から名前の合計数までシートを順番に反復処理します。これにより、名前が希望の順序で取得されることが保証されます。
OLEDB ベースのアプローチを求める人のために、次のコード サンプルは Excel シート名を順番に取得する方法を示しています。
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; } }
この手法を採用すると、ワークブック内に表示される正確な順序で Excel シート名を効率的に取得でき、名前またはインデックスに基づいたシームレスなユーザー操作が可能になります。
以上がOLEDB を使用して Excel シート名を元の順序で取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。