Мне нужно прочитать данные из файлов excel в моем приложении winforms С#. Любые рекомендации по хорошим компонентам для этого? Я использовал syncfusion несколько лет назад, и это, казалось, делало трюк.
Там будет куча строк заголовков, которые мне нужно пропустить (поэтому прямой подход ADO не будет работать легко), а затем таблица данных со стандартными столбцами, но с переменным числом строк.
Я буду накачивать данные в db SQL Server после его чтения, но, вероятно, перед этим нужно выполнить проверку и т.д.
спасибо!
В конечном счете мы выбрали Syncfusion XLSIO, который хорошо работает.
Спасибо за другие предложения.
SpreadsheetGear для .NET будет делать это.
Вы можете увидеть образцы ASP.NET с С# и источником VB здесь и загрузить бесплатную пробную версию здесь, если вы хотите попробовать.
Отказ от ответственности: у меня есть SpreadsheetGear LLC
В настоящее время мы используем Flexcel. В нем есть несколько полезных функций, включая инструмент для чтения электронной таблицы и создания необходимого кода С# (или VB или Delphi) для создания этого листа с использованием их набора инструментальных средств - он упрощает проектирование листа. Лицензирование не было дорогостоящим (лицензия сайта для разработчиков, свободное перераспределение).
Единственное, что противно - совместимость XLSX (родной формат Excel 2007) "сейчас скоро".
Im, используя компонент ComponentOne XLS прямо сейчас. Он довольно стабилен и делает работу. Я также использую его для интеграции данных.
Я также хотел сделать несколько отчетов xls, однако API не поддерживает полный стек excel (даже не запускает экземпляр excel), поэтому мне пришлось переходить на Mirosoft.Office.Interop
вы также можете использовать LINQ to XML, см. ссылку ниже...
Один из вариантов: MS Office Wrapper для .NET
Прочитайте это сообщение в блоге по чтению и написанию электронных таблиц Excel.
Вы можете сделать что-то вроде этого:
// Connection String to Excel Workbook
string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter("Select * FROM [Sheet1$]", excelConnectionString);
DataSet dataSet = new DataSet();
oleDbDataAdapter.Fill(dataSet);
Также см. "SqlBulkCopy"