Di salah satu aplikasi ASP.NET kami di C #, kami mengambil kumpulan data tertentu (koleksi SubSonic) dan mengekspornya ke Excel. Kami juga ingin mengimpor file Excel dalam format tertentu. Saya mencari perpustakaan yang bisa saya gunakan untuk tujuan ini.
Persyaratan:
- File Excel 2007 (Apakah Excel 2003 mendukung lebih dari 64k baris? Saya perlu lebih dari itu.)
- Tidak memerlukan Excel di server
- Mengambil koleksi yang diketik dan, jika bisa, mencoba menempatkan bidang angka sebagai angka di Excel.
- Bekerja dengan baik dengan file besar (100rb hingga 10rb) - cukup cepat.
- Tidak macet saat mengekspor GUID!
- Tidak memerlukan biaya banyak uang (tidak ada perpustakaan perusahaan seperti aspose). Gratis selalu bagus, tetapi bisa menjadi perpustakaan komersial.
Perpustakaan apa yang Anda rekomendasikan? Sudahkah Anda menggunakannya untuk data dalam jumlah besar? Apakah ada solusi lain?
Saat ini, saya menggunakan alat sederhana yang menghasilkan HTML yang dimuat oleh Excel nanti, tapi saya kehilangan beberapa kemampuan, ditambah Excel mengeluh ketika kita memuatnya. Saya tidak perlu membuat grafik atau semacamnya, hanya mengekspor data mentah.
Saya sedang memikirkan file CSV datar, tetapi Excel adalah persyaratan pelanggan. Saya dapat bekerja dengan CSV secara langsung, jika saya memiliki alat untuk mengonversi ke dan dari Excel. Mengingat Excel 2007 adalah format file berbasis xml (dan zip), saya menduga perpustakaan semacam ini harus mudah ditemukan. Namun, yang paling penting bagi saya adalah komentar dan pendapat Anda.
EDIT: Ironisnya, menurut saya dan mengikuti jawaban dengan suara terbanyak, pustaka impor & ekspor Excel terbaik tidak ada ekspor sama sekali. Ini bukan kasus untuk semua skenario, tetapi untuk saya. File XLS hanya mendukung baris 64rb. XLSX mendukung hingga 1 juta. Perpustakaan gratis yang saya coba memiliki fitur kinerja yang buruk (satu detik untuk memuat satu baris ketika Anda memiliki 200 ribu baris). Saya belum mencoba yang berbayar, karena saya merasa mereka terlalu mahal untuk nilai yang mereka berikan ketika semua yang Anda butuhkan adalah XLSX <-> CSV konversi rutin yang cepat.
sumber
Jawaban:
Saya akan melemparkan tangan saya untuk file csv datar, kalau saja karena Anda punya kontrol terbesar atas kode. Pastikan Anda membaca di baris dan memprosesnya satu per satu (membaca dokumen sampai akhir dan membelah akan memakan semua memori Anda - sama dengan menulis, streaming keluar).
Ya, pengguna harus menyimpan-sebagai CSV di excel sebelum Anda bisa memprosesnya, tetapi mungkin batasan ini dapat diatasi dengan pelatihan dan memberikan instruksi yang jelas pada halaman?
Akhirnya, ketika Anda mengekspor ke pelanggan, jika Anda mengatur jenis mime ke teks / csv, Excel biasanya dipetakan ke jenis itu sehingga tampaknya pengguna adalah 'file Excel'.
sumber
Saya menemukan Open XML SDK sejak jawaban awal saya. Ini memberikan kelas yang sangat diketik untuk objek spreadsheet, antara lain, dan tampaknya cukup mudah untuk dikerjakan. Saya akan menggunakannya untuk laporan di salah satu proyek saya. Sayangnya, versi 2.0 tidak seharusnya dirilis sampai akhir 2009 atau 2010.
sumber
versi baru ExcelPackage ada di sini http://EPPlus.codeplex.com
Saya masih berjuang dengan fungsi ekspor ke excel karena aplikasi saya harus mengekspor beberapa data ke excel-template 2007
proyek ini tampaknya baik untuk saya, dan pengembang sangat responsif terhadap bug dan masalah.
sumber
Saya telah menggunakan ClosedXML dan berfungsi dengan baik!
sumber
SpreadsheetGear untuk .NET membaca dan menulis CSV / XLS / XLSX dan melakukan lebih banyak.
Anda dapat melihat sampel ASP.NET langsung dengan kode sumber C # dan VB di sini dan mengunduh uji coba gratis di sini .
Tentu saja saya pikir SpreadsheetGear adalah perpustakaan terbaik untuk mengimpor / mengekspor buku kerja Excel di ASP.NET - tapi saya bias. Anda dapat melihat apa yang dikatakan beberapa pelanggan kami di sisi kanan halaman ini .
Penafian: Saya memiliki SpreadsheetGear LLC
sumber
NPOI Untuk Excel 2003 Open Source http://www.leniel.net/2009/07/creating-excel-spreadsheets-xls-xlsx-c.html
sumber
Saya telah menggunakan Flexcel di masa lalu dan itu hebat. Tapi ini lebih untuk membuat dan memutakhirkan lembar kerja excel secara terprogram.
sumber
Ekspor CSV sederhana, mudah diimplementasikan, dan cepat. Ada satu masalah potensial yang perlu diperhatikan. Excel (hingga 2007) tidak menyimpan angka nol dalam file CSV. Ini akan memutarbalikkan kode ZIP, id produk, dan data tekstual lainnya yang berisi nilai numerik. Ada satu trik yang akan membuat Excel mengimpor nilai-nilai dengan benar (menggunakan pembatas dan nilai awalan dengan tanda =, jika saya ingat dengan benar, misalnya .., = "02052", ...). Jika Anda memiliki pengguna yang akan melakukan tugas pasca-pemrosesan dengan CSV, mereka harus menyadari bahwa mereka perlu mengubah format menjadi XLS dan tidak menyimpan file kembali ke CSV. Jika mereka melakukannya, nol di depan akan hilang untuk selamanya.
sumber
Selama bertahun-tahun, saya telah menggunakan JExcel untuk ini, proyek Java open-source yang sangat baik. Itu juga. NET-bisa dengan menggunakan J # untuk mengkompilasinya, dan saya juga telah sukses besar dengan itu dalam inkarnasi ini. Namun, baru-baru ini saya perlu memigrasi kode ke .NET asli untuk mendukung aplikasi IIS 64-bit di mana saya membuat output Excel. Versi J # 32-bit tidak mau dimuat.
Kode untuk CSharpJExcel adalah LGPL dan saat ini tersedia di halaman ini , sementara kami bersiap untuk menggunakannya di situs JExcel SourceForge. Ini akan dikompilasi dengan VS2005 atau VS2008. Contoh-contoh dalam dokumentasi JExcel asli akan bergerak dengan baik ke versi .NET.
Semoga bermanfaat bagi seseorang di sini.
sumber
Saya telah bekerja dengan excel jetcell untuk waktu yang lama dan benar-benar dapat merekomendasikannya. http://www.devtriogroup.com/exceljetcell
sumber
Situs berikut menunjukkan cara mengekspor DataTable, DataSet, atau Daftar <> ke file Excel .xlsx "2007" yang layak (daripada mengekspor file .csv, dan meminta Excel untuk membukanya).
Ini menggunakan pustaka OpenXML, jadi Anda tidak perlu menginstal Excel di server Anda.
Basis Pengetahuan Mikes - ExportToExcel
Semua kode sumber diberikan, gratis , dan juga sebagai aplikasi demo.
Sangat mudah untuk menambahkan ke aplikasi Anda sendiri, Anda hanya perlu memanggil satu fungsi, meneruskan nama file Excel, dan sumber data Anda:
Semoga ini membantu.
sumber
Periksa proyek ExcelPackage , menggunakan format file Office Open XML Excel 2007, ringan dan open source ...
sumber
Saya sudah mencoba CSharpJExcel dan tidak akan merekomendasikannya, setidaknya tidak sampai ada beberapa dokumentasi yang tersedia. Bertentangan dengan komentar pengembang itu bukan port asli langsung.
sumber
Saya tahu ini agak terlambat, tetapi saya merasa harus menjawab xPorter (menulis) dan xlReader (membaca) dari xPortTools.Net . Kami menguji beberapa perpustakaan dan tidak ada yang mendekati kinerja (saya berbicara tentang menulis jutaan baris dalam hitungan detik di sini). Tidak bisa mengatakan cukup banyak hal baik tentang produk ini!
sumber
Kamu bisa memakai
Microsoft.Jet.OLEDB.4.0
sumber
Kami baru saja mengidentifikasi kebutuhan yang serupa. Dan saya pikir penting untuk mempertimbangkan pengalaman pengguna.
Kami hampir saja dialihkan ke jalur yang sama:
... alur kerja
Add-in Express memungkinkan Anda untuk membuat tombol dalam Excel tanpa semua yang membosankan dengan VSTO. Maka alur kerja menjadi:
Minta kode di belakang tombol gunakan API "asli" Excel (via Add-in Express) dan dorong langsung ke sistem penerima. Anda tidak bisa mendapatkan lebih transparan untuk pengembang atau pengguna. Layak dipertimbangkan.
sumber
Ada artikel dan perpustakaan yang cukup bagus tentang CodeProject oleh Yogesh Jagota:
Perpustakaan Impor-Ekspor Excel XML
Saya telah menggunakannya untuk mengekspor data dari kueri SQL dan sumber data lainnya ke Excel - berfungsi dengan baik untuk saya.
Bersulang
sumber
Anda dapat mencoba pustaka berikut, cukup mudah dan itu hanya pembungkus ringan di atas Open XML SDK Microsoft (Anda bahkan dapat menggunakan kembali pemformatan, gaya, dan bahkan seluruh lembar kerja dari file Excel sekunder): http://officehelper.codeplex.com
sumber
Spreadsheetgear adalah perpustakaan komersial terbaik yang kami temukan dan gunakan. Perusahaan kami melakukan banyak impor dan ekspor excel canggih dan Spreadsheetgear mendukung banyak fitur excel canggih yang jauh melampaui apa pun yang dapat Anda lakukan dengan CSV sederhana, dan cepat. Ini tidak gratis atau sangat murah tetapi layak karena dukungannya sangat baik. Pengembang benar-benar akan merespons Anda jika Anda mengalami masalah.
sumber
Bagaimana dengan perpustakaan java POI apache. Saya belum menggunakannya untuk Excel, tetapi tidak menggunakannya untuk Word 2007.
sumber