2009-11-09 2 views
7

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

ответ

7

Вам понадобится System.IO.Packaging API - это позволит вам сгенерируйте документы .xlsx, как описано в Inserting Values into Excel 2007 Cells. Формат Excel 2007 также может использоваться Excel 2003 и XP с установленным бесплатным Microsoft Office Compatibility Pack.

+0

@wcoenen -nice edits, thanks. – Murph

+0

Есть ли какой-нибудь пример построения Excel с помощью 'System.IO.Packaging'? я не могу найти ничего в документации, которая касается Excel. –

+0

@IanBoyd есть лучший способ (сейчас) посмотреть ClosedXML - который вы можете найти здесь: http://closedxml.codeplex.com/ – Murph

1

вы можете Chech это link

и spreadsheetgear

и CarlosAg Excel Xml Writer Library

+0

Библиотека CarlosAg хороша, но имеет ограничения и фактически превосходит System.IO. Упаковка – Murph

+0

и как насчет распределительных устройств? –

+0

@astander - Spreadsheetgear несколько не является бесплатным и поэтому не является тем, что я исследовал. – Murph

0

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

2

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

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

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

К сожалению, это просто не так - формат .xslx - horrible beyond words.

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

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

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

Смежные вопросы