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>
. 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>
adat. MyContact
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!