首頁 > 後端開發 > 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板