Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat membaca dan memanipulasi fail Excel secara langsung di C# tanpa perpustakaan luaran?

Bagaimanakah saya dapat membaca dan memanipulasi fail Excel secara langsung di C# tanpa perpustakaan luaran?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-01 11:36:12680semak imbas

How Can I Efficiently Read and Manipulate Excel Files Directly in C# Without External Libraries?

akses fail excel langsung di C#: Pendekatan yang diselaraskan

Mengaut automatik pengendalian data sering memerlukan kaedah C# yang cekap untuk mengakses fail Excel secara langsung. Ini dapat dicapai dengan berkesan menggunakan perpustakaan yang tersedia, percuma, atau sumber terbuka.

memanfaatkan pembekal Microsoft Jet OLEDB

Pembekal Microsoft Jet OLEDB menawarkan penyelesaian yang kuat. Ia membolehkan aplikasi C# menyambung ke fail Excel dan mengambil data melalui pertanyaan. Inilah caranya:

<code class="language-csharp">var filePath = Path.Combine(Directory.GetCurrentDirectory(), "fileNameHere.xlsx"); //Improved path handling
var connectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;';"; //Updated for newer Excel versions and header detection

using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (var command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection)) //Assumes sheet name "Sheet1"
    {
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                //Process each row here
                string columnName1 = reader["ColumnName1"].ToString();
                // ... process other columns
            }
        }
    }
}</code>
Kod ini menyambung ke fail Excel, melaksanakan pertanyaan (memilih semua data dari "Sheet1"), dan memproses baris hasil dengan baris menggunakan

. Perhatikan rentetan sambungan yang dikemas kini untuk keserasian yang lebih baik dengan versi Excel moden dan pengendalian ralat yang lebih baik menggunakan OleDbDataReader pernyataan. using

manipulasi data dengan linq

Untuk manipulasi data yang lebih canggih, LINQ (pertanyaan bersepadu bahasa) menyediakan alat yang kuat. Walaupun contoh di atas secara langsung memproses data dari

, anda boleh mengisi OleDbDataReader dan kemudian gunakan LINQ: DataTable

<code class="language-csharp">// ... (previous code to populate a DataTable named 'dataTable') ...

var contacts = dataTable.AsEnumerable()
    .Where(row => !string.IsNullOrEmpty(row.Field<string>("phoneNumber")))
    .Select(row => new MyContact
    {
        FirstName = row.Field<string>("FirstName"),
        LastName = row.Field<string>("LastName"),
        PhoneNumber = row.Field<string>("phoneNumber")
    });</code>
Penapis pertanyaan LINQ ini untuk kenalan dengan nombor telefon dan memproyeksikannya ke dalam kelas

adat. MyContact

Pendekatan gabungan ini menggunakan pembekal Microsoft Jet OLEDB dan Linq menawarkan cara yang cekap dan fleksibel untuk berinteraksi dengan data Excel secara langsung dalam aplikasi C# anda, mengelakkan kerumitan parsing data manual. Ingatlah untuk mengendalikan potensi pengecualian dengan sewajarnya dalam persekitaran pengeluaran.

Atas ialah kandungan terperinci Bagaimanakah saya dapat membaca dan memanipulasi fail Excel secara langsung di C# tanpa perpustakaan luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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