var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
Inilah yang biasanya saya gunakan. Ini sedikit berbeda karena saya biasanya menempel AsEnumerable () di edit tabel:
var data = ds.Tables["anyNameHere"].AsEnumerable();
karena ini memungkinkan saya menggunakan LINQ untuk mencari dan membangun struct dari bidang.
var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
new MyContact
{
firstName= x.Field<string>("First Name"),
lastName = x.Field<string>("Last Name"),
phoneNumber =x.Field<string>("Phone Number"),
});
xlsx
, Anda harus menggunakan string koneksi ini sebagai gantinya:string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", fileName)
Jika hanya data sederhana yang terkandung dalam file Excel Anda dapat membaca data melalui ADO.NET. Lihat string koneksi yang tercantum di sini:
http://www.connectionstrings.com/?carrier=excel2007 atau http://www.connectionstrings.com/?carrier=excel
-Ryan
Perbarui: maka Anda bisa membaca lembar kerja melalui sesuatu seperti
select * from [Sheet1$]
sumber
Pendekatan ADO.NET cepat dan mudah, tetapi memiliki beberapa keanehan yang harus Anda ketahui, terutama mengenai bagaimana DataTypes ditangani.
Artikel yang luar biasa ini akan membantu Anda menghindari beberapa perangkap umum: http://blog.lab49.com/archives/196
sumber
Ini yang saya gunakan untuk Excel 2003:
sumber
Bagaimana dengan Pembaca Data Excel?
http://exceldatareader.codeplex.com/
Saya menggunakannya di kemarahan, di lingkungan produksi, untuk menarik sejumlah besar data dari berbagai file Excel ke SQL Server Compact. Ini bekerja dengan sangat baik dan agak kuat.
sumber
<dimension>
elemen yang hilang<worksheet>
yang menyebabkan masalah bagi saya.Berikut adalah beberapa kode yang saya tulis di C # menggunakan .NET 1.1 beberapa tahun yang lalu. Tidak yakin apakah ini akan tepat seperti yang Anda butuhkan (dan mungkin bukan kode terbaik saya :)).
sumber
Koogra adalah komponen open-source yang ditulis dalam C # yang membaca dan menulis file Excel.
sumber
Meskipun Anda secara khusus meminta .xls, menyiratkan format file yang lebih lama, untuk format OpenXML (misalnya xlsx), saya sangat merekomendasikan OpenXML SDK ( http://msdn.microsoft.com/en-us/library/bb448854.aspx )
sumber
Saya melakukan banyak membaca dari file Excel di C # beberapa waktu lalu, dan kami menggunakan dua pendekatan:
Pendekatan terakhir jauh lebih cepat: membaca tabel besar dengan 20 kolom dan 200 baris akan memakan waktu 30 detik melalui COM, dan setengah detik melalui ODBC. Jadi saya akan merekomendasikan pendekatan database jika yang Anda butuhkan hanyalah data.
Bersulang,
Carl
sumber
ExcelMapper adalah alat sumber terbuka ( http://code.google.com/p/excelmapper/ ) yang dapat digunakan untuk membaca lembar kerja Excel sebagai Objek yang Diketik Dengan Kuat. Ini mendukung format xls dan xlsx.
sumber
Saya ingin menunjukkan metode sederhana untuk membaca file xls / xlsx dengan .NET. Saya harap yang berikut ini akan membantu Anda.
Kode berasal dari artikel: http://www.c-sharpcorner.com/uploadfile/d2dcfc/read-excel-file-with-net/ . Anda bisa mendapatkan detail lebih banyak dari itu.
sumber
Tidak gratis, tetapi dengan Office terbaru ada otomatisasi .Net API yang sangat bagus. (telah ada API untuk waktu yang lama tetapi COM jahat) Anda dapat melakukan semua yang Anda inginkan / butuhkan dalam kode semua sementara aplikasi Office tetap merupakan proses latar belakang tersembunyi.
sumber
Maafkan saya jika saya di luar markas di sini, tetapi bukankah ini untuk Kantor PIA ?
sumber
Akhir-akhir ini, sebagian untuk menjadi lebih baik di LINQ .... Saya telah menggunakan API otomatisasi Excel untuk menyimpan file sebagai XML Spreadsheet dan kemudian memproses file tersebut menggunakan LINQ ke XML.
sumber
SpreadsheetGear untuk .NET adalah komponen spreadsheet yang kompatibel dengan Excel untuk .NET. Anda dapat melihat apa yang dikatakan pelanggan tentang kinerja di sisi kanan halaman produk kami . Anda dapat mencobanya sendiri dengan evaluasi gratis yang berfungsi penuh .
sumber
SmartXLS adalah komponen spreadsheet excel lain yang mendukung sebagian besar fitur Chart excel, mesin formula, dan dapat membaca / menulis format openxml excel2007.
sumber
Komponen .NET Excel Reader .NET dapat memenuhi kebutuhan Anda. Cukup baik untuk membaca file XLSX dan XLS. Jadi cobalah dari:
sumber
Saya merekomendasikan Perpustakaan FileHelpers yang bebas dan mudah digunakan. Perpustakaan NET untuk mengimpor / mengekspor data dari EXCEL, panjang tetap atau catatan dibatasi dalam file, string atau stream + Lebih Banyak.
Bagian Dokumentasi Tautan Data Excel http://filehelpers.sourceforge.net/example_exceldatalink.html
sumber
Anda dapat mencoba menggunakan solusi open source ini yang membuat berurusan dengan Excel jauh lebih bersih.
http://excelwrapperdotnet.codeplex.com/
sumber
SpreadsheetGear mengagumkan. Ya itu pengeluaran, tetapi dibandingkan dengan mengutak-atik solusi lain ini, ini sepadan dengan biayanya. Ini cepat, dapat diandalkan, sangat komprehensif, dan harus saya katakan setelah menggunakan produk ini dalam pekerjaan perangkat lunak penuh saya selama lebih dari satu setengah tahun, dukungan pelanggan mereka luar biasa!
sumber
Solusi yang kami gunakan, diperlukan untuk:
Ada beberapa pilihan, tetapi kami menemukan NPoi (.NET port dari proyek open source Poi lama di Jawa ) menjadi yang terbaik: http://npoi.codeplex.com/
Ini juga memungkinkan bekerja dengan format file .doc dan .ppt
sumber
Jika itu hanya data tabular. Saya akan merekomendasikan file data helpers oleh Marcos Melli yang dapat diunduh di sini .
sumber
Terlambat ke pesta, tapi aku penggemar LinqToExcel
sumber
Anda bisa menulis excel spreadsheet yang memuat spreadsheet excel yang diberikan dan menyimpannya sebagai csv (daripada melakukannya secara manual).
maka Anda dapat mengotomatisasi itu dari c #.
dan sekali di csv, program c # dapat grok itu.
(juga, jika seseorang meminta Anda untuk memprogram dalam excel, yang terbaik adalah berpura-pura tidak tahu caranya)
(sunting: ah ya, merampok dan ryan keduanya benar)
sumber
Saya tahu bahwa orang telah membuat "ekstensi" Excel untuk tujuan ini.
Anda kurang lebih membuat tombol di Excel yang bertuliskan "Ekspor ke Program X", lalu ekspor dan kirim data dalam format yang bisa dibaca program.
http://msdn.microsoft.com/en-us/library/ms186213.aspx harus menjadi tempat yang baik untuk memulai.
Semoga berhasil
sumber
Baru saja melakukan proyek demo cepat yang diperlukan mengelola beberapa file excel. Komponen .NET dari perangkat lunak GemBox memadai untuk kebutuhan saya. Ini memiliki versi gratis dengan beberapa batasan.
http://www.gemboxsoftware.com/GBSpreadsheet.htm
sumber
Paket Excel adalah komponen open-source (GPL) untuk membaca / menulis file Excel 2007. Saya menggunakannya pada proyek kecil, dan API langsung. Hanya bekerja dengan XLSX (Excel 200 &), tidak dengan XLS.
Kode sumber juga tampaknya terorganisir dengan baik dan mudah untuk diselesaikan (jika Anda perlu memperluas fungsionalitas atau memperbaiki masalah kecil seperti yang saya lakukan).
Pada awalnya, saya mencoba pendekatan ADO.Net (Excel connection string), tetapi penuh dengan peretasan yang tidak baik - misalnya jika baris kedua berisi angka, ia akan mengembalikan int untuk semua bidang di kolom di bawah ini dan dengan diam-diam menjatuhkan data apa pun itu tidak cocok.
sumber
Kami menggunakan ClosedXML dalam sistem yang agak besar.
sumber
Take.io
Spreadsheet akan melakukan pekerjaan ini untuk Anda, dan tanpa biaya. Coba lihat ini .sumber
Saya baru saja menggunakan ExcelLibrary untuk memuat spreadsheet .xls ke dalam DataSet. Bekerja dengan baik untuk saya.
sumber