ホームページ > バックエンド開発 > C++ > OLEDB を使用して Excel シート名を元の順序で取得するにはどうすればよいですか?

OLEDB を使用して Excel シート名を元の順序で取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-03 01:16:41
オリジナル
254 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート