Что хорошие методы состоят в том, чтобы выполнить подобные электронной таблице вычисления на языке программирования?

Я обычно делаю:

LIBDIR=$(dirname "$(readlink -f "$(type -P $0 || echo $0)")")
source $LIBDIR/lib.sh
6
задан Kunle 5 August 2009 в 18:54
поделиться

8 ответов

Aspose.Cells (ранее Aspose.Excel.Web) - хороший способ получить функциональность, которую вы ищете.

Если вы не спрашиваете больше в разделе «Как дела? это было сделано?" чем «Мне нужно это сделать». Затем я посмотрю на другие полученные ответы.

1
ответ дан 17 December 2019 в 07:07
поделиться

По строкам «Мне нужно это сделать»
У Microsoft есть Службы Excel , которые делают именно то, что вы хотите. Операции с таблицами на сервере. Он доступен через интерфейс веб-служб, так что вы можете подключаться и управлять вычислениями из Java, PHP, .NET и т. Д.

Службы Excel являются частью Sharepoint 2007.

1
ответ дан 17 December 2019 в 07:07
поделиться

Resolver One - это приложение для работы с электронными таблицами, созданное на IronPython.

Существует объяснение общей механики вычислений [pythonology.org], которые оно использует для пользовательских вычислений.

Overview of Resolver One's overall algorithm to deal with user generated ecuations

Соответствующее изображение, показывающее общий алгоритм Resolver One.

Следует отметить, что пользователи могут писать код Python для интерпретации как в ячейках, так и в специальном месте «вне листа».

Посмотрите на еще один вопрос здесь, в SO , откуда я повторно использовал свой ответ.

1
ответ дан 17 December 2019 в 07:07
поделиться

Я не могу сказать вам, как это сделать. Но я бы порекомендовал вам взглянуть на код PHPExcel . PHPExcel - это библиотека, которая позволяет вам создавать файлы Excel в PHP.

Рабочий процесс PHPExcel упрощается следующим образом:

  1. Создать пустой объект файла Excel
  2. Добавить ячейки (с данными или формулами) в " Файл Excel »
  3. Вызовите функцию создания, которая генерирует сам файл

В вашем случае вам придется заменить 3. на что-то вроде« Создать веб-интерфейс ».

Поэтому я бы рекомендовал вам взглянуть на код этого проекта с открытым исходным кодом и посмотрите, какова общая структура. Это должно помочь вам решить вашу проблему.

0
ответ дан 17 December 2019 в 07:07
поделиться

Чтобы провести фактическое вычисление, взгляните на теорию графов. По сути, вы хотите представить каждую ячейку как узел на графике, а каждую зависимость как направленное ребро. Затем выполните топологическую сортировку , чтобы вычислить значение каждой ячейки в правильном порядке.

2
ответ дан 17 December 2019 в 07:07
поделиться

Я должен указать, что электронные таблицы Google уже делают подобные вещи.

-1
ответ дан 17 December 2019 в 07:07
поделиться

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

Итак, y = x * x + 2

превратилось в:

          +
      *       2
   x     x

К сожалению, это было в школе на Паскале и является хранится на диске 5 1/4 дюйма, поэтому он вам не нужен :)

0
ответ дан 17 December 2019 в 07:07
поделиться

SpreadsheetGear для .NET позволит вам загружать книги Excel, вставлять значения, вычислять и затем получать результаты.

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

Отказ от ответственности: я владею SpreadsheetGear LLC

0
ответ дан 17 December 2019 в 07:07
поделиться
Другие вопросы по тегам:

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