2011-01-06 1 views
0

У меня есть DataTable в моей программе, которую я ранее экспортировал в Excel, используя CSV-файл. Тем не менее, я хочу условно форматировать backgroun-цвет ячеек, что, очевидно, требует нового подхода.Экспорт данных в Excel (включая форматирование) с использованием C#

Проблема заключается в том, что компьютер, на котором будет запущено программное обеспечение, не имеет Excel. Поэтому я не могу пойти по пути вызова Excel api.

Есть ли простой способ сделать это, что я пропустил? Если нет, является ли формат опубликованных файлов Excel или как я могу достичь этой цели?

Спасибо.


EDIT:

Для тех, кто еще что-то интересно, я в конце концов нашел this post, который обеспечивает самый простой метод, который я нашел. Работает с Excel 2003.

ответ

0

Отъезд NPOI, который является POI-портом .NET, бесплатной библиотекой межсетевого взаимодействия MS. Это мощный и довольно простой, чтобы учиться (хотя документация есть iffy). Я прочитал некоторые из прошлых сообщений здесь о NPOI (их не так много), чтобы ознакомиться с несколькими разочаровывающими ошибками, которые не так много проблем, как вещи, которые противоречат друг другу и не всегда очевидны из документации.

Но как только вы преодолеете недостаток хорошего грунтовки, это потрясающая библиотека.

Я предполагаю, что вы говорите о формате xls. Если вы можете использовать новый XML-формат xlsx, это совершенно другая проблема. Вам просто нужно написать XML, формат доступен на веб-сайте Microsoft. Там может быть : (см. Другой ответ), которые могут помочь с этим, хотя лично я всегда использую NPOI и пишу файлы XLS, чтобы убедиться, что кто-то может их открыть.