Как создать файл Excel (.XLS и .XLSX) в C # без установки Microsoft Office? [закрыто]

Как создать электронную таблицу Excel с C #, не требуя установки Excel на компьютер, на котором выполняется код?

1760
задан 13 revs, 8 users 36% 2 July 2019 в 22:02
поделиться

16 ответов

IKVM + ПОИ

Или, Вы могли использовать Interop...

12
ответ дан MagicKat 2 July 2019 в 22:02
поделиться

Решение с открытым исходным кодом Java ПОИ Apache . Возможно, существует способ установить interop здесь, но я не знаю достаточно о Java для ответа на это.

, Когда я исследовал эту проблему, я закончил тем, что использовал блоки Interop.

7
ответ дан 2 revs, 2 users 91% 2 July 2019 в 22:02
поделиться

Вот способ сделать это с LINQ к XML, вместе с примером кода:

Quickly Import и Export Данные Excel с LINQ к XML

Это - немного комплекса, так как необходимо импортировать пространства имен и т.д, но это действительно позволяет Вам избежать любых внешних зависимостей.

(Кроме того, конечно, это-.NET VB, не C#, но можно всегда изолировать материал.NET VB в его собственном проекте использовать литералы XML и сделать все остальное в C#.)

12
ответ дан 2 revs 2 July 2019 в 22:02
поделиться

Можно использовать OLEDB, чтобы создать и управлять файлами Excel. Проверьте это: Reading и Writing Excel с помощью OLEDB.

Типичный пример:

using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
  conn.Open();
  OleDbCommand cmd = new OleDbCommand("CREATE TABLE [Sheet1] ([Column1] string, [Column2] string)", conn);
  cmd.ExecuteNonQuery();
}

РЕДАКТИРОВАНИЕ - еще Некоторые ссылки:

103
ответ дан 4 revs, 2 users 97% 2 July 2019 в 22:02
поделиться

Вы на самом деле могли бы хотеть проверить interop классы . Вы не говорите OLE (который это не), но interop классы очень просты в использовании.

Вы могли бы быть впечатлены, если Вы не судили их.

быть предупрежденным относительно Microsoft позиция на этом:

Microsoft в настоящее время не рекомендует и не поддерживает, Автоматизация приложений Microsoft Office ни от какого необслуживаемого, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), потому что Office может показать нестабильное поведение и/или зайти в тупик, когда Office выполняется в этой среде.

43
ответ дан 3 revs, 2 users 64% 2 July 2019 в 22:02
поделиться

Я соглашаюсь о генерации электронных таблиц XML, вот пример о том, как сделать это для C# 3 (все просто ведут блог об этом в VB 9: P) http://www.aaron-powell.com/linq-to-xml-to-excel

14
ответ дан 2 revs 2 July 2019 в 22:02
поделиться

Чрезвычайно легкая опция может состоять в том, чтобы использовать HTML-таблицы. Просто создайте голову, тело и теги таблицы в файле, и сохраните его как файл с .xls расширением. Существует Microsoft определенные атрибуты, которые можно использовать для моделирования вывода, включая формулы.

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

59
ответ дан 2 revs 2 July 2019 в 22:02
поделиться

Вы могли рассмотреть создание Ваших файлов с помощью электронная таблица XML 2003 формат. Это - простой формат XML с помощью хорошо зарегистрированная схема .

24
ответ дан 2 revs, 2 users 75% 2 July 2019 в 22:02
поделиться

Можно хотеть смотреть на GemBox. Электронная таблица .

у Них есть бесплатная версия со всеми функциями, но ограниченный 150 строками на лист и 5 листов на рабочую книгу, если это находится в пределах Ваших потребностей.

у меня не было потребности использовать его самого все же, но действительно выглядит интересным.

21
ответ дан 2 revs, 2 users 88% 2 July 2019 в 22:02
поделиться

Различные библиотеки Office 2003 XML доступная работа вполне прилично для меньших файлов Excel. Однако я нахожу чистый размер большой рабочей книги сохраненным в формате XML, чтобы быть проблемой. Например, рабочая книга, я работаю с этим, составила бы 40 МБ в новом (и по общему признанию более плотно упакованный), формат XLSX становится XML-файлом 360 МБ.

, Насколько мое исследование взяло меня, существует два коммерческих пакета, которые позволяют вывод более старым форматам двоичного файла. Они:

Gembox ComponentOne Ни один не является дешевым (500 долларов США и 800 долларов США соответственно, я думаю). но оба работают независимые от самого Excel.

то, На предмет чего мне было бы любопытно, является выходным модулем Excel для подобных OpenOffice.org. Интересно, могут ли они быть портированы от Java до.Net.

16
ответ дан 2 revs, 2 users 96% 2 July 2019 в 22:02
поделиться

Вы когда-либо пробовали sylk?

Мы раньше генерировали excelsheets у классического asp как sylk, и прямо сейчас мы ищем excelgenerater также.

преимущества для sylk, можно отформатировать ячейки.

7
ответ дан Stefan Koelle 2 July 2019 в 22:02
поделиться

Коммерческое решение, SpreadsheetGear для.NET сделает это.

Вы видите живой ASP.NET (C# и VB) образцы здесь и загружаете пробную версию здесь .

Правовая оговорка: Я владею SpreadsheetGear LLC

77
ответ дан 4 revs, 3 users 94% 2 July 2019 в 22:02
поделиться

Можно использовать ExcelXmlWriter.

Это хорошо работает.

47
ответ дан 2 revs, 2 users 55%Petr Snobelt 3 July 2019 в 08:02
поделиться

Я только что недавно использовал FlexCel.NET и нашел, что это превосходная библиотека! Я не говорю это о слишком многих программных продуктах. Никакой смысл в предоставлении целой коммерческой цели здесь, можно считать все функции на их веб-сайте.

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

я не думаю, что Вы найдете любой способ сделать это без сторонних библиотек, поскольку платформа.NET, очевидно, не имеет созданным в поддержке его, и Автоматизация OLE является просто целым миром боли.

14
ответ дан 2 revs, 2 users 92% 3 July 2019 в 08:02
поделиться
  • 1
    Я уже проверяю, что репозиторием является GitHub repo и it' s хороший думают, что пользователи используют только корректные электронные письма для своих фиксаций. Я can' t используют Граватары потому что партия пользователей don' t граватары использования на GitHub (граватары уже реализованы в моем коде), – Fez Vrasta 8 April 2014 в 20:24

Несколько вариантов, которые я использовал:

Если XLSX необходим: ExcelPackage - хорошее начало, но оно исчезло, когда разработчик прекратил работу над ним. ExML взял оттуда и добавил несколько функций. ExML неплохой вариант, я все еще использую его на нескольких производственных веб-сайтах.

Однако для всех моих новых проектов я использую NPOI , порт .NET для Apache POI . NPOI 2.0 (Alpha) также поддерживает XLSX.

65
ответ дан 22 November 2019 в 20:06
поделиться

Я успешно использовал следующие проекты с открытым исходным кодом:

  • ExcelPackage для форматов OOXML (Office 2007)

  • NPOI для формата .XLS (Office 2003). NPOI 2.0 (Beta) также поддерживает XLSX.

Взгляните на мои сообщения в блоге:

Создание таблиц Excel .XLS и .XLSX на C #

NPOI с таблицей Excel и динамическими диаграммами

167
ответ дан 22 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: