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
Lepaskan: 2025-02-01 11:36:12
asal
605 orang telah melayarinya

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>
Salin selepas log masuk
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>
Salin selepas log masuk
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!

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