ASP.NET MVC / C # - Как конвертировать / создавать Excel (xls) с форматированием из DataTable / List в MVC? - PullRequest
2 голосов
/ 25 марта 2011

Мне удалось создать файл Excel xls из DataTable, следуя по этой ссылке .Но как мне отформатировать содержимое файла XLS?

Спасибо.

Ответы [ 4 ]

1 голос
/ 25 марта 2011

Я лично использовал NPOI с хорошими результатами.

1 голос
/ 25 марта 2011

Используя эту технику, вы не можете отформатировать содержимое.Вам нужно будет сгенерировать настоящий двоичный файл Excel, используя для этого какой-то сторонний элемент управления.Вот один стоит проверить .Вы также можете взглянуть на эту статью .

0 голосов
/ 25 марта 2011

Если вы предпочитаете избегать сторонних библиотек, у вас есть две другие разумные альтернативы:

Лично я болею за SpreadsheetML (один из форматов, поддерживаемых Excel 2003+), поскольку относительно легко создать его вручную с нуля. Просто создайте файл, который выглядит правильно, и сохраните его в формате SpreadsheetML, а затем используйте его в качестве руководства при создании собственного.


Альтернатива - начать с предварительно отформатированного «чистого» документа Excel (с заголовками таблицы, но без данных). Затем в него можно вставить строки данных с помощью поставщика Jet.OLEDB.

Это имеет множество недостатков по сравнению с использованием сторонней библиотеки:
1. Не удается отформатировать данные, которые вы вставляете. Разрешает только форматирование заголовков таблицы и т. Д.
2. Проблемы совместимости в некоторых версиях Windows.
3. Плохо обрабатывает некоторые типы данных.

Он имеет несколько преимуществ по сравнению с использованием сторонней библиотеки:
1. От Microsoft. Меньше ошибок, бесплатно, меньше риск вредоносного кода.
2. Очень прост в использовании, если вы уже освоились с SQL.

0 голосов
/ 25 марта 2011

Решение в этой ссылке просто создает файл значений, разделенных табуляцией, который может содержать только данные ячейки, но не информацию о форматировании.Если вам нужно форматирование, то вы либо сохраняете HTML-разметку с расширением .xls (такой подход я бы обычно не рекомендовал), либо вам необходимо создать «подлинный» файл Excel ... но я не знаю, какая библиотекаварианты, которые у вас есть в C # для этого (кроме использования .net

Однако в ответах на на этот предыдущий вопрос

указано несколько библиотек)
...