W jednej z naszych aplikacji ASP.NET w języku C # pobieramy określoną kolekcję danych (kolekcję SubSonic) i eksportujemy ją do programu Excel. Chcemy również importować pliki Excel w określonym formacie. Szukam biblioteki, której mogę użyć do tego celu.
Wymagania:
- Pliki programu Excel 2007 (czy program Excel 2003 obsługuje ponad 64 tys. Wierszy? Potrzebuję więcej.)
- Nie wymaga programu Excel na serwerze
- Pobiera wpisaną kolekcję i, jeśli to możliwe, próbuje umieścić pola numeryczne jako numeryczne w programie Excel.
- Działa dobrze z dużymi plikami (100k do 10M) - wystarczająco szybko.
- Nie ulega awarii podczas eksportowania identyfikatorów GUID!
- Nie kosztuje ogromu pieniędzy (żadna biblioteka korporacyjna nie jest podobna). Darmowy jest zawsze świetny, ale może być biblioteką komercyjną.
Jaką bibliotekę polecasz? Czy używałeś go do dużych ilości danych? Czy są inne rozwiązania?
Obecnie używam prostego narzędzia, które generuje HTML ładowany później przez program Excel, ale tracę pewne możliwości, a program Excel narzeka, gdy go ładujemy. Nie muszę generować wykresów ani nic podobnego, wystarczy wyeksportować surowe dane.
Mam na myśli płaskie pliki CSV, ale Excel jest wymaganiem klienta. Mogę pracować bezpośrednio z CSV, jeśli miałbym narzędzie do konwersji do iz Excela. Biorąc pod uwagę, że Excel 2007 jest formatem pliku XML (i spakowanym), domyślam się, że tego rodzaju biblioteki powinny być łatwe do znalezienia. Jednak najważniejsze są dla mnie twoje komentarze i opinie.
EDYCJA: Jak na ironię, moim zdaniem i po odpowiedzi z największą liczbą głosów, najlepsza biblioteka importu i eksportu Excel w ogóle nie eksportuje. Nie dotyczy to wszystkich scenariuszy, ale dotyczy moich. Pliki XLS obsługują tylko 64k wierszy. XLSX obsługuje do 1M. Darmowe biblioteki, które wypróbowałem, mają niską wydajność (jedna sekunda, aby załadować jeden wiersz, gdy masz 200 000 wierszy). Nie wypróbowałem płatnych, ponieważ uważam, że są one zawyżone za wartość, którą zapewniają, gdy wszystko, czego potrzebujesz, to szybka procedura konwersji XLSX <-> CSV.