Формула Excel для кода C #

Я хотел бы преобразовать электронную таблицу Excel в компонент кода С#. Чтобы заставить его работать, мне нравится получать все ячейки листа, содержащего фомуляры, в С# через взаимодействие. В модуле С# я хотел бы решить определенные фомуляры с разными значениями, заменив ссылки на ячейки в фомуляре. Есть ли структура, в которой я могу, например, преобразовать «SUM ($ C3: $ C5)» из Excel в «var sum = c3 + c4 + c5;» или полулатеральные формуляры?

с уважением Гордон


person Martin Hudasch    schedule 22.03.2011    source источник


Ответы (4)


Это то, что вы будете делать неоднократно или только один раз?

Мы используем www.spreadsheetgear.com для управления электронными таблицами Excel из C#, и это прекрасно работает. У нас разные потребности, поэтому вам следует изучить API, чтобы узнать, дает ли он вам доступ к тексту форумул, но я думаю, что да.

Никакой аффилированности - просто довольный клиент.

person n8wrl    schedule 22.03.2011
comment
Получить формулу из электронной таблицы не проблема. Это уже реализовано через office-interop. В результате получается фомуляр в строковом формате. Я хочу заменить ссылки, такие как C22, другим значением, а затем решить формулу без Excel. Поскольку я уже нахожусь в коде С#, я хотел бы решить формулу там. - person Martin Hudasch; 22.03.2011
comment
О, я вижу, он может оценивать данные ему вычисления. Это может быть решением, но, поскольку оно платное, я думаю, что не смогу его использовать. Но это решается. - person Martin Hudasch; 22.03.2011

Я думаю, вы ищете средство оценки выражений на C#.

Google нашел несколько, на которые, я думаю, вам стоит обратить внимание:

Вам также могут понадобиться реализации всех этих встроенных функций Excel. Существует библиотека со всеми финансовыми функциями, повторно реализованными на F# Лукой Болоньезе — найдите ее в MSDN.

person Govert    schedule 22.03.2011

Больше мощности, чем вам нужно, но, если повезет, потребуется только тонкая оболочка интерфейса, чтобы перекачивать данные из execl в механизм формул:

FormulaEngine — это сборка .NET, позволяющая добавить в приложение поддержку формул. Он занимается разбором и оценкой формул, отслеживанием их зависимостей и пересчетом в естественном порядке. Синтаксис формул и большая часть функций механизма являются прямыми копиями Excel, что обеспечивает низкую кривую обучения для пользователей.

Ссылка: FormulaEngine


Обновление: недавно я запустил аналогичную библиотеку Python: pycel.

person dgorissen    schedule 13.06.2011

Проверьте ActiveMesa X2C, который делает именно это. (Отказ от ответственности: я являюсь автором указанного продукта.)

person Dmitri Nesteruk    schedule 15.04.2017