使用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中文網其他相關文章!