Создание файлов Excel с помощью C#
Мне нужно создать файл excel через C#. Я прочитал несколько мест, где создание XML-документа является самым простым способом сделать это? Мне нужно иметь несколько именованных вкладок и иметь возможность указать, что определенные ячейки-это текст, дата, время, число и т. д... Любые предложения или примеры?
7 ответов
вам нужно Система.ИО.Упаковка API-это позволит вам генерировать .документы xlsx, как описано в вставка значений в ячейки Excel 2007. Формат Excel 2007 также может использоваться Excel 2003 и XP с бесплатным Пакет Совместимости Microsoft Office установлен.
это удручающе трудно сделать, так как рекомендуемый механизм 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
файлы сами по себе будут болезненными.
мы используем набор под названием 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-хороший способ сделать это