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

Как я могу программно создавать, читать, писать excel без установки офиса?

Я сбитый с толку с помощью всех bazillion способов читать/писать/создавать файлы excel. VSTO, OLEDB и т.д., Но все они, похоже, требуют, чтобы офис был установлен.

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

Мне нужно поддерживать все форматы excel. Единственное сберегающее изящество состоит в том, что сами таблицы форматов очень просты. Просто куча столбцов и ценностей, ничего необычного. И, к сожалению, нет CSV, поскольку конечный пользователь может даже не знать, что такое CSV файл.

4b9b3361

Ответ 1

напишите свой Excel в формате таблицы HTML:

<html>
<body>
  <table>
    <tr>
    <td style="background-color:#acc3ff">Cell1</td>
    <td style="font-weight:bold">Cell2</td>
    </tr>
  </table>
</body>
</html>

и дайте вашему файлу расширение xls. Excel автоматически преобразует его

Ответ 2

Без установленного Office вам понадобится что-то, предназначенное для понимания формата двоичных файлов Excel (если только вы не хотите открывать файлы Office.xlsx Office 2007.)

Лучшее, что я нашел (и которое я использую), SpreadsheetGear, которое, помимо того, что является родным .NET, является гораздо быстрее и стабильнее, чем решения COM/OLE (которые я использовал в прошлом)

Ответ 3

читать и записывать файлы csv. Excel читает их просто отлично, и их проще в использовании. Если вам нужно работать с файлами .xls, попробуйте иметь поддержку OpenOffice, а также Excel. OpenOffice может читать и записывать файлы excel.

Ответ 4

Вы рассмотрели способ номер bazillion и один: используя Open XML SDK? Вы можете сохранять стили и настраивать их по своему вкусу. Все, что вы можете сделать в реальном файле, можно реализовать программно. SDK поставляется с инструментом под названием Document Reflector, который показывает базовый XML и даже показывает операторы LINQ, которые могут быть использованы для их создания. Это ключ к тому, чтобы поиграть с ним, увидеть, как сделаны изменения, а затем воссоздать это в коде.

Единственное предостережение - это будет работать для новых форматов на основе XML (*.xlsx), а не для более старых версий. Там небольшая кривая обучения, но больше материала делает свой путь в блогах и других сайтах.

Ответ 5

Файлы Excel XLSX "просто" XML файлы - более точно ZIP файлы, содержащие несколько XML файлов. Просто переименуйте файл Excel Test.xslx в Test.zip и откройте его с помощью вашей почтовой программы favourit. XML-схемы, afaik, стандартизированы и доступны. Но я думаю, что было бы нелегко манипулировать ими только с помощью примитивных инструментов и фреймворков XML.

Ответ 6

Если стоимость не является проблемой, я бы предложил искать в продукте Aspose Excel. Я использую свой продукт Word, и я был доволен.

Aspose.Cells

Ответ 7

Файлы Excel находятся в запатентованном формате, поэтому (afaik) вы не сможете это сделать, не имея доступ к офисному доступу. Существуют некоторые сторонние инструменты (которые предположительно лицензируют формат от MS?), Но я сам не использовал их, чтобы прокомментировать их полезность.

Я предполагаю, что вы не можете контролировать формат базового файла, т.е. простые форматы CSV или XML не будут возможны?

Ответ 8

Я использовал очень красивую библиотеку под названием CarlosAg, которая использует формат Excel XML. Это было здорово (и Excel распознает формат), а также невероятно быстро. Проверьте здесь.

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

Ответ 9

Если вы не можете работать с файлами CSV в соответствии с предложением @RHicke и предполагаете, что работаете в веб-приложении, поскольку для настольного приложения гарантировано наличие XL установленных в соответствии с требованиями.

Я бы сказал, создайте свое приложение для обработки как webservice и создайте XL addin, который будет взаимодействовать с вашим веб-сервисом напрямую из XL.

Ответ 10

Для файлов XLSX используйте http://www.codeplex.com/ExcelPackage. В противном случае некоторые платные сторонние решения там, как и тот, который предложил Дэвид.

Ответ 11

Я понимаю, что на сервере не установлен офис. Существует много библиотек, таких как aspose, но некоторые из них требуют лицензии. Если вы настроите таргетинг на форматы MS Excel, тогда доступна встроенная библиотека Interoperability, поставщик данных ACE OLEDB от Microsoft, которую вы можете установить на машине и начать читать, написав программно. Вам необходимо определить строку подключения и команды в соответствии с вашими потребностями. (Ссылка: Эта статья @yoursandmyideas) рассказывает об использовании этой библиотеки вместе с информацией по настройке и устранению неполадок.