Что делать, если существуют какие-либо ссылки для бесплатных библиотек классов "помощник" Excel для С#?
Я ищу любые доступные бесплатные "вспомогательные" классы Excel, написанные для .net(не обязательно С#).
Я хотел бы оценить то, что другие считают полезным и универсальным статическим (и не статическим) вспомогательными методами.
Может быть нацелена на VSTO или обычную автоматизацию Office, хотя это, вероятно, не имеет значения.
Думаю, я должен также указать, что этот вопрос НЕ просит "какие хорошие альтернативы (или бесплатные альтернативы) использовать автоматизацию объектной модели Excel. Мне не нужны ссылки на передачу SS и т.д., хотя они все отличные продукты, которые не являются целью вопроса.
В случае, если в предыдущем абзаце я не был достаточно ясен: я не хочу, чтобы ответы на них указывали - используйте этот бесплатный (или не бесплатный) сторонний компонент вместо кода объектной модели Excel.
Итак, в основном, я просил, чтобы пользователь разработал библиотеки кода С#, которые содержат вспомогательные функции VSTO, Office или Excel, такие как статические методы работы с меню, лентами, диапазонами, рабочими книгами, документами, xml (например, отаку)...
Ответы
Ответ 1
С точки зрения автоматизации Office для Excel, есть несколько хороших командлетов PowerShell Open XML, которые можно использовать для PS или перенести на С# на Объявление о выпуске PowerTools для Open XML V1.1. В блоге Эрика Уайта, где находится эта ссылка, недавно более подробно рассматривается автоматизация Excel с использованием Open XML, например Разметка таблиц в Open XML SpreadsheetML. Примечание об Open XML - хотя для многих это предпочтительный метод, вам на самом деле не нужно использовать Open XML SDK - вы можете просто использовать System.IO.Packaging
для получения доступа к файлам Excel 2007/2010.
Кроме того, часто упускается из виду, но фрагменты Excel, доступные для VSTO, Open XML и Interop, великолепны. 1, 2, 3
Также ознакомьтесь с примерами Excel для VB @http://msdn.microsoft.com/en-us/library/8x19fbw1(v=VS.90).aspx. Они устанавливаются вместе с VS, когда вы также выбираете VB в качестве языка во время установки.
Обновление: Только что обнаружил платформу All-In-One Code (Office), в которой есть много отличных вспомогательных классов Excel. Вы можете найти его на: http://1code.codeplex.com/releases/view/51868.
Ответ 2
VSTO Power Tools - хороший набор утилит для работы с Excel:
http://msdn.microsoft.com/en-us/magazine/dd263100.aspx
Ответ 3
ExcelDNA - очень крутой проект. Он обеспечивает легкий способ использования кода .NET из Excel с моделью развертывания, которая намного проще, чем VSTO. Я нашел это интересной альтернативой VSTO, если вы хотите написать UDF, например, в .NET.
Ответ 4
Для проектов ВСТО:
http://www.add-in-express.com/
Без VSTO, без автоматизации:
http://www.html-to-pdf.net/excel-library.aspx
Примечание: ни одна из этих библиотек не является бесплатной.
Ответ 5
Там один называется FileHelpers, который позволяет сохранять данные Excel в формате CSV, а библиотека FileHelpers может легко анализировать информацию и т.д., уверен, что он не может полностью раздуть автоматизацию Excel, но это хороший прогресс в синтаксическом анализе. Если вы говорите о возможности иметь дело с Excel в бинарном режиме, то эта статья из CodeProject может помочь, также здесь, BIFF parser, которые понимают основное хранилище данных excel, а также здесь в CodeProject.
Ответ 6
С .net 4.0 динамическое написание ключевых слов автоматизация Excel, как ад.
Если вы хотите intellisense, вы можете легко написать оболочку c # поверх динамических вызовов.
UPDATE
Мы работаем с автоматизацией Excel с 2001 года (разрабатываем финансовые надстройки). С Excel 2000 до 2010 года.
И все мы знаем, что стандартное взаимодействие просто не работает, когда ваш код должен работать со всеми версиями и пакетами обновлений Office.
Мы много раз избивали пользовательские библиотеки взаимодействия, версии VSTO и т.д. Через год мы нашли только одно работающее решение - вызов всей автоматизации с помощью вызовов с поздним связыванием (рефлексия). т.е. ('' код блокнота '') Type.GetTypeFromProgId('Excel.Application').GetMethod('Visible').Invoke(....).
Но код был очень большой и уродливый, тогда мы просто обернули этот уродливый код с помощью Object Model, скопированной из Excel 1:1. Когда нам нужен новый метод, мы добавляем его в нашу объектную модель Excel и вызываем автоматизацию Excel с помощью позднего связанного вызова.
С новым динамическим ключевым словом можно жить без оболочки, особенно с динамической поддержкой Resharper.
Ответ 7
Я предпочитаю это:
Пакет Excel на CodePlex
он использует Open XML, поэтому нет необходимости устанавливать офис на компьютер (может или не учитывать), но я нашел его очень простым в использовании и настройке.
Ответ 8
Мне очень нравится NPOI для форматов 2003/2007
http://npoi.codeplex.com/
Полностью автономный и простой в использовании