Muat data CSV dengan cekap ke dalam .NET DataTable
Memuatkan data CSV ke dalam Jadual Data ialah tugas biasa dalam pemprosesan dan analisis data. Artikel ini meneroka cara untuk mencapai ini menggunakan keupayaan terbina dalam .NET, memfokuskan pada mencipta skema daripada fail CSV.
Gunakan fungsi standard ADO.NET
Rangka kerja ADO.NET standard tidak menyokong pembacaan fail CSV secara langsung. Walau bagaimanapun, kami boleh memanfaatkan penyedia OleDb untuk mengimport data CSV dengan mencipta fail definisi skema.
Buat skema menggunakan fail .INI
Untuk mencipta fail skema (schema.ini), ikut langkah berikut:
<code>[FileName.csv] Format=CSVDelimited ColNameHeader=True MaxScanRows=0</code>
Pelaksanaan kod
Kod berikut menunjukkan cara memuatkan data CSV ke dalam Jadual Data menggunakan pembekal OleDb dengan fail definisi skema:
<code class="language-csharp">using System.Data; using System.Data.OleDb; using System.Globalization; using System.IO; static DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader) { string header = isFirstRowHeader ? "Yes" : "No"; string pathOnly = Path.GetDirectoryName(path); string fileName = Path.GetFileName(path); string sql = @"SELECT * FROM [" + fileName + "]"; using (OleDbConnection connection = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathOnly + ";Extended Properties=\"Text;HDR=" + header + "\"")) using (OleDbCommand command = new OleDbCommand(sql, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; adapter.Fill(dataTable); return dataTable; } }</code>
Kaedah ini mengambil sebagai input laluan fail CSV dan bendera yang menunjukkan sama ada baris pertama mengandungi pengepala lajur. Ia mengembalikan Jadual Data yang diisi berdasarkan data CSV.
Kaedah ini menerima laluan fail CSV dan nilai Boolean sebagai parameter, menunjukkan sama ada baris pertama ialah pengepala. Ia mengembalikan Jadual Data yang diisi dengan data CSV. Kod yang dipertingkatkan menambah rujukan ruang nama using System.Globalization;
dan using System.IO;
dan menunjukkan kefungsian kod dengan lebih jelas.
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan Data CSV dengan Cekap ke dalam Jadual Data .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!