使用OLEDB
問題定義,可能會具有挑戰性。 GetoLedbschematable()無法按照所需順序提供表格。這阻礙了用戶根據表名稱或索引指定數據檢索的能力,從而導致混亂。 使用嵌套looping
的解決方案涉及通過床單順序迭代的方法從表0到床單的數量減去1。這確保了床單的保存order.
Implementation Using OLEDB
If using the Office Interop classes is not feasible, a solution using OLEDB is available:
/// ///從Excel工作簿中檢索Excel名稱。 /// /// excel文件。 /// 字符串[] 私有字符串[] getExcelSheetNames(字符串Extelfile) { oledbconnection objconn = null; system.data.datatable dt = null; 嘗試 { //連接字符串 字符串connstring =“ provider = microsoft.jet.oledb.4.0;” “ data source =“ excrelfile”;擴展屬性= excel 8.0;“; //創建連接並打開與數據庫的連接 objconn =新的OledBConnection(Connstring); objconn.open(); //獲取包含模式GUID的數據表 dt = objconn.getoledbschematable(oledbschemaguid.tables,null); 如果(dt == null) 返回null; //初始化字符串[]以存儲表名。 string [] excelSheets = new String [dt.Rows.Count]; int i = 0; //在字符串數組中添加表名稱。 foreach(dt.Rows中的datarow Row) { excelSheets [i] = row [“ table_name”]。 tostring(); 我 ; } 返回ExcelSheets; } 捕獲(異常EX) { 返回null; } 最後 { //清理連接和數據表 如果(objconn!= null) { objconn.close(); objconn.dispose(); } 如果(dt!= null) { dt.dispose(); } } } 此代碼連接到excel文件,檢索包含表名稱的數據表,並以這些名稱出現在電子表格中的順序填充字符串[]。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3