Создание файлов Excel с помощью C#

Мне нужно создать файл excel через C#. Я прочитал несколько мест, где создание XML-документа является самым простым способом сделать это? Мне нужно иметь несколько именованных вкладок и иметь возможность указать, что определенные ячейки-это текст, дата, время, число и т. д... Любые предложения или примеры?

7 ответов


вам нужно Система.ИО.Упаковка API-это позволит вам генерировать .документы xlsx, как описано в вставка значений в ячейки Excel 2007. Формат Excel 2007 также может использоваться Excel 2003 и XP с бесплатным Пакет Совместимости Microsoft Office установлен.


взгляните на NPOI:

http://www.codeplex.com/npoi

Это также было довольно хорошо освещено в другом месте на SO:

https://stackoverflow.com/search?q=create + excel + .net


это удручающе трудно сделать, так как рекомендуемый механизм Microsoft включает использование Office, который отлично работает на рабочем столе, но бесполезен для интернета.

двоичный формат .xls файлы-это приличие, поэтому Microsoft представила .xlsx файлы OpenXML в Office 2007.

на .xslx предположительно просто-это просто почтовый контейнер, полный XML-файлов. Вы можете открыть его с помощью System.IO.Packaging и отредактируйте его с помощью System.Xml. Существует даже пакет совместимости для более старых версий из офиса.

к сожалению, это просто не просто - формате .xslx и ужас за пределами слов.

похоже, они взяли 16-битный оптимизированный двоичный .xls формат (первоначально разработанный для Windows 3.1) и сериализованный в XML вместо двоичного. Затем они добавили действительно глупые изменения, такие как комментарии ячеек на самом деле VML - формат, предположительно, упал с IE5! Они также добавили тонну магии числа и метаданные в XML, поэтому вы не можете использовать какие-либо преобразования на нем, поэтому вы анализируете эту присоску вручную.

наконец, они сделали его полным ослом для отладки, и мы регулярно находим .xslx файлы, которые пакет совместимости сообщает как поврежденные (без причины), но последняя версия Office может открыться нормально.

есть очень хорошая библиотека с открытым исходным кодом для это: SpreadsheetLight. Это очень хорошая библиотека, но все, что требует, чтобы вы копать и степень .xslx файлы сами по себе будут болезненными.


вы можете проверить это ссылке

и spreadsheetgear

и CarlosAg Excel Xml Writer Библиотека


мы используем набор под названием Aspose на работе. Он имеет большой полнофункциональный компонент "клетки", который творит чудеса для нас.


http://epplus.codeplex.com/ - взгляните на этот проект, его beens помогает мне так много. Я нашел эту ссылку по адресу: https://stackoverflow.com/questions/170652/whats-the-best-net-library-for-parsing-and-generating-excel-spreadsheets


Visual Studio Tools for Office-хороший способ сделать это

http://msdn.microsoft.com/en-us/vsto/dd162436.aspx

http://msdn.microsoft.com/en-us/vsto/default