Mengambil semula Nama Helaian Excel dalam Susunan Helaian Menggunakan OLEDB
Tugas mendapatkan semula nama helaian daripada buku kerja Excel lazimnya ditemui dalam pengaturcaraan. Walau bagaimanapun, mendapatkan nama-nama ini dalam susunan yang ditakrifkan dalam hamparan boleh mencabar apabila menggunakan OleDb.
Definisi Masalah
Dengan menyusun semula nama helaian mengikut abjad, OleDbConnection. GetOleDbSchemaTable() gagal memberikan nama helaian dalam susunan yang dikehendaki. Ini menghalang keupayaan pengguna untuk menentukan pengambilan data berdasarkan nama atau indeks helaian, yang membawa kepada kekeliruan.
Penyelesaian Menggunakan Gelung Bersarang
Satu pendekatan melibatkan lelaran melalui helaian secara berurutan dari helaian 0 hingga bilangan helaian tolak 1. Ini memastikan pemeliharaan helaian pesanan.
Pelaksanaan Menggunakan OLEDB
Jika menggunakan kelas Office Interop tidak boleh dilaksanakan, penyelesaian menggunakan OLEDB tersedia:
/// <summary> /// Retrieves excel sheet names from an excel workbook. /// </summary> /// <param name="excelFile">The excel file.</param> /// <returns>String[]</returns> private String[] GetExcelSheetNames(string excelFile) { OleDbConnection objConn = null; System.Data.DataTable dt = null; try { // Connection String String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;"; // Create connection and open connection to database objConn = new OleDbConnection(connString); objConn.Open(); // Get data table containing schema guid dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if(dt == null) return null; // Initialize String[] to store sheet names. String[] excelSheets = new String[dt.Rows.Count]; int i = 0; // Add sheet name to the string array. foreach(DataRow row in dt.Rows) { excelSheets[i] = row["TABLE_NAME"].ToString(); i++; } return excelSheets; } catch(Exception ex) { return null; } finally { // Clean up connection and data table if(objConn != null) { objConn.Close(); objConn.Dispose(); } if(dt != null) { dt.Dispose(); } } }
Ini kod menyambung ke fail Excel, mendapatkan semula jadual data yang mengandungi nama helaian dan mengisi String[] dengan nama ini dalam susunan ia muncul dalam hamparan.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Helaian Excel dalam Susunan Asalnya Menggunakan OLEDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!