Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mendapatkan Nama Helaian Excel dalam Susunan Asalnya Menggunakan OLEDB?

Bagaimana untuk Mendapatkan Nama Helaian Excel dalam Susunan Asalnya Menggunakan OLEDB?

Linda Hamilton
Lepaskan: 2025-01-05 15:46:41
asal
844 orang telah melayarinya

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

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();
      }
   }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan