Создание файлов Excel с C# без office [дубликат]

этот вопрос уже есть ответ здесь:

Я пишу программу, которая генерирует отчеты excel, в настоящее время используя Microsoft.Взаимодействие.Справочник по Excel. На моем компьютере dev есть Excel, но у конечного пользователя может быть или не быть установлен Office. Это сбой инструмента, Если Office не установлен на компьютере конечных пользователей или эта служба взаимодействия отделена от фактического приложения?

7 ответов


Если у вас не установлен Excel на сервере / ПК или не используется внешний инструмент (что возможно без использования Excel Interop, см. Создать Excel (.XLS и .XLSX) файл из C#),это плохо. использование взаимодействия требует установки Excel.


Если вы заинтересованы в принятии .файлы xlsx (Office 2007 и выше), вам повезло. Office 2007+ использует OpenXML, который из-за отсутствия более подходящего описания является XML-файлами внутри zip с именем .XLSX-файл

возьмите файл excel (2007+) и переименуйте его.зип, можешь открыть и посмотреть. Если вы используете .NET 3.5, вы можете использовать систему.ИО.Библиотека упаковки для управления отношениями & zipfile и linq to xml для воспроизведения с xml (или просто DOM, если вы больше удобный.)

в противном случае id reccomend DotNetZip, мощная библиотека для манипулирования zipfiles.

OpenXMLDeveloper имеет много ресурсов об OpenXML, и вы можете найти больше там.

Если вы хотите .xls (2003 и ниже) вам придется заглянуть в сторонние библиотеки или, возможно, узнать формат файла самостоятельно, чтобы достичь этого без установки excel.


попробовать EPPlus Если вы используете Excel 2007. Поддерживает диапазоны, cellstyling, диаграммы, фигуры, фотографии и многое другое


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

в этом случае да, она не будет работать, потому что зависит в excel вы просто вызываете функции excel. Если они его не установили...неудачливый.

есть методы для генерации без Excel, при условии, что формат файла 2007 в порядке, вот немногие:

Как я уже сказал, это формат 2007 обычно, если что-нибудь, что это решаемый вопрос.


есть несколько вариантов:

  • NPOI - который свободен и открыт источник.
  • Aspose - Это наверняка не бесплатно, но надежно.
  • таблицы ML - в основном XML для создания электронных таблиц.

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

Если у пользователя нет Excel, но есть инструмент, который будет читать Excel (например, Open Office), то, очевидно, они смогут его открыть. Microsoft имеет бесплатный Excel viewer доступно для тех пользователей, у которых нет Excel.


используйте OleDB, вы можете создавать, читать и редактировать файлы excel довольно легко. Чтение документации MSDN для получения дополнительной информации:

http://msdn.microsoft.com/en-us/library/aa288452 (VS.71).aspx

Я использовал OleDB для чтения из файлов excel, и я знаю, что вы можете их создать, но я не сделал этого из первых рук.


вы можете использовать класс ExcelStorage FileHelpers библиотеки, это очень легко и просто... вам понадобится Excel 2000 или более поздней версии на компьютере.

FileHelpers является бесплатным и легко используйте библиотеку .NET для импорта / экспорта данные из фиксированной длины или с разделителями записи в файлах, строках или потоках.