Я ищу библиотеку синтаксического анализа ac#/.net excel, которая может работать с файлами, загруженными конечными пользователями, которые могут иметь причуды
В настоящее время мы используем ExcelDataReader , но у него есть серьезные недостатки при работе с файлами Excel из дикой природы.
Я ищу парсер excel, который может:
Приятно иметь:
Было бы хорошо, если бы это был платный продукт, но в этом случае было бы сложно, если бы у него не было демоверсии.
Вы можете использовать сам Excel. Он имеет встроенную очень богатую объектную модель, которую вы можете использовать через взаимодействие COM с .NET.
Однако есть 2 недостатка:
Однако независимо от того, какую библиотеку вы выберете, вы все равно должны ставить в очередь загруженные файлы из соображений безопасности, поэтому второй недостаток на самом деле не является проблемой.
Преимущество заключается в том, что при использовании оригинального Excel у вас есть 100% совместимость с загруженными книгами.
Лучшая библиотека, которую использовала наша компания, — Closedxml.
Вы объявляете и инициализируете объект с помощью конструктора. Соберите свои данные, поместите их в свою таблицу данных и преобразуйте свою таблицу данных в Excel. Производительность довольно хорошая. Если вы используете пример с миллионом строк, я бы предпочел добавить новые листы, если Excel не перейдет к переполнению в ОЗУ. Лучше всего, это бесплатно, с открытым исходным кодом.
XLWorkbook wb = new XLWorkbook();
DataTable dt = GetDataTableOrWhatever();
wb.Worksheets.Add(dt,"WorksheetName");
Джон Ю.