Подтвердить что ты не робот

Создание файлов Excel с С# без офиса

Возможный дубликат:
Создать файл Excel (.XLS и .XLSX) с С#

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

4b9b3361

Ответ 1

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

Ответ 2

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

Возьмите файл excel (2007+) и переименуйте его в .zip, вы можете открыть его и посмотреть. Если вы используете .NET 3.5, вы можете использовать библиотеку System.IO.Packaging, чтобы манипулировать отношениями и самими zipfile, а linq - xml, чтобы играть с xml (или просто DOM, если вам удобнее).

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

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

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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

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

Ответ 6

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

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

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

Ответ 7

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

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