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"];
Это то, что я обычно использую. Это немного отличается, потому что я обычно вставляю AsEnumerable () при редактировании таблиц:
var data = ds.Tables["anyNameHere"].AsEnumerable();
так как это позволяет мне использовать LINQ для поиска и построения структур из полей.
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
, вместо этого вам нужно использовать эту строку подключения:string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", fileName)
Если это просто простые данные, содержащиеся в файле Excel, вы можете прочитать данные через ADO.NET. Смотрите строки подключения, перечисленные здесь:
http://www.connectionstrings.com/?carrier=excel2007 или http://www.connectionstrings.com/?carrier=excel
-Ryan
Обновление: тогда вы можете просто прочитать лист через что-то вроде
select * from [Sheet1$]
источник
Подход ADO.NET является быстрым и легким, но в нем есть несколько особенностей, о которых вам следует знать, особенно в том, как обрабатываются типы данных.
Эта отличная статья поможет вам избежать некоторых распространенных ошибок: http://blog.lab49.com/archives/196
источник
Вот что я использовал для Excel 2003:
источник
Как насчет Excel Data Reader?
http://exceldatareader.codeplex.com/
В производственной среде я использовал гнев для извлечения больших объемов данных из различных файлов Excel в SQL Server Compact. Это работает очень хорошо, и это довольно надежно.
источник
<dimension>
элемент в том,<worksheet>
что доставляло мне неприятности.Вот код, который я написал на C # с использованием .NET 1.1 несколько лет назад. Не уверен, что это именно то, что вам нужно (и, возможно, не мой лучший код :)).
источник
Koogra - это компонент с открытым исходным кодом, написанный на C #, который читает и записывает файлы Excel.
источник
Хотя вы специально запрашивали .xls, подразумевая более старые форматы файлов, для форматов OpenXML (например, xlsx), я настоятельно рекомендую OpenXML SDK ( http://msdn.microsoft.com/en-us/library/bb448854.aspx )
источник
Некоторое время назад я много читал из файлов Excel в C #, и мы использовали два подхода:
Последний подход был намного быстрее: чтение большой таблицы с 20 столбцами и 200 строками заняло бы 30 секунд через COM и полсекунды через ODBC. Поэтому я бы порекомендовал подход с использованием базы данных, если вам нужны только данные.
Ура,
деревенщина
источник
ExcelMapper - это инструмент с открытым исходным кодом ( http://code.google.com/p/excelmapper/ ), который можно использовать для чтения листов Excel в виде строго типизированных объектов. Он поддерживает форматы xls и xlsx.
источник
Я хочу показать простой способ чтения файла xls / xlsx с помощью .NET. Я надеюсь, что следующее будет полезно для вас.
Код взят из статьи: http://www.c-sharpcorner.com/uploadfile/d2dcfc/read-excel-file-with-net/ . Вы можете получить более подробную информацию от него.
источник
Не бесплатно, но с последней версией Office есть очень хорошая автоматизация .Net API. (API долгое время существовал, но был неприятным COM). В коде можно делать все, что вам нужно / нужно, пока приложение Office остается скрытым фоновым процессом.
источник
Извините, если я здесь вне базы, но разве это не для Office PIA ?
источник
В последнее время, частично, чтобы стать лучше в LINQ .... Я использовал API автоматизации Excel, чтобы сохранить файл в виде электронной таблицы XML, а затем обработать этот файл с помощью LINQ to XML.
источник
SpreadsheetGear for .NET - это совместимый с Excel компонент электронных таблиц для .NET. Вы можете увидеть, что говорят наши клиенты о производительности, в правой части страницы нашего продукта . Вы можете попробовать сами с помощью бесплатной, полнофункциональной оценки .
источник
SmartXLS - это еще один компонент электронных таблиц Excel, который поддерживает большинство функций диаграмм Excel, механизмов формул и может читать / писать в формате openxml excel2007.
источник
Компонент .NET Excel Reader .NET может удовлетворить ваши требования. Это хорошо для чтения файлов XLSX и XLS. Так что попробуйте из:
источник
Я рекомендую библиотеку FileHelpers, которая является бесплатной и простой в использовании библиотекой .NET для импорта / экспорта данных из EXCEL, записей фиксированной длины или с разделителями в файлах, строках или потоках + еще.
Раздел документации ссылок на данные Excel http://filehelpers.sourceforge.net/example_exceldatalink.html
источник
Вы можете попробовать использовать это решение с открытым исходным кодом, которое делает работу с Excel намного более чистой.
http://excelwrapperdotnet.codeplex.com/
источник
SpreadsheetGear - это круто. Да, это затраты, но по сравнению с этими другими решениями стоит затрат. Это быстро, надежно, очень полно, и я должен сказать, что после использования этого продукта в моей работе над программным обеспечением более полутора лет, их поддержка клиентов просто фантастическая!
источник
Решение, которое мы использовали, требовало:
Есть несколько вариантов, но мы нашли NPoi (порт .NET для давно существующего проекта Java с открытым исходным кодом Poi ) лучшим: http://npoi.codeplex.com/
Также позволяет работать с форматами файлов .doc и .ppt.
источник
Если это просто табличные данные. Я бы порекомендовал файловые помощники от Marcos Melli, которые можно скачать здесь .
источник
Опоздал на вечеринку, но я фанат LinqToExcel
источник
Вы могли бы написать электронную таблицу Excel, которая загружает данную электронную таблицу Excel и сохраняет ее как CSV (вместо того, чтобы делать это вручную).
тогда вы можете автоматизировать это с C #.
и как только он в csv, программа c # может это сделать.
(также, если кто-то просит вас программировать в Excel, лучше всего делать вид, что вы не знаете как)
(править: ах, да, Роб и Райан оба правы)
источник
Я знаю, что люди делали расширение Excel для этой цели.
Вы более или менее делаете кнопку в Excel с надписью «Экспорт в программу X», а затем экспортируете и отправляете данные в формате, который может прочитать программа.
http://msdn.microsoft.com/en-us/library/ms186213.aspx должно быть хорошим местом для начала.
Удачи
источник
Просто сделал быстрый демонстрационный проект, который требовал управления некоторыми файлами Excel. Компонент .NET из программного обеспечения GemBox соответствовал моим потребностям. Имеется бесплатная версия с несколькими ограничениями.
http://www.gemboxsoftware.com/GBSpreadsheet.htm
источник
Пакет Excel - это компонент с открытым исходным кодом (GPL) для чтения / записи файлов Excel 2007. Я использовал его в небольшом проекте, и API прост. Работает только с XLSX (Excel 200 &), но не с XLS.
Исходный код также выглядит хорошо организованным и его легко обойти (если вам нужно расширить функциональность или исправить мелкие проблемы, как я).
Сначала я попробовал подход ADO.Net (строка подключения Excel), но он был чреват неприятными взломами - например, если вторая строка содержит число, он вернет целые числа для всех полей в столбце ниже и тихо отбросит любые данные это не подходит
источник
Мы используем ClosedXML в довольно больших системах.
источник
Take.io
Электронная таблица сделает эту работу за вас и бесплатно. Просто взгляните на это .источник
Я просто использовал ExcelLibrary для загрузки электронной таблицы .xls в DataSet. Отлично сработало для меня.
источник