Мне нужна отдельная .net DLL для обработки формул электронных таблиц openxml в реальном времени - PullRequest
0 голосов
/ 21 января 2012

Я пишу приложение, которое будет работать на сервере, к которому у меня не будет доступа.
Моя задача - создать веб-интерфейс, который будет инкапсулировать некоторую расширенную (более 200 формул) логику, основанную на электронной таблице Excel.
Я не смогу установить какое-либо программное обеспечение на этот сервер.
Я не хочу перекодировать все формулы в C #.
Я хотел бы использовать автономную библиотеку DLL, которая позволит мне открыть файл электронной таблицы в формате OpenXML, изменить значения входных ячеек, а затем извлечь конечные значения из ячеек, содержащих формулы, которые были запущены для новых данных.
Есть ли что-то еще, кроме взаимодействия Excel (которое требует установки Excel), которое фактически вычислит формулы в реальном времени?

1 Ответ

1 голос
/ 21 января 2012

Поскольку вы хотите работать с файлами OpenXML, вы можете использовать OpenXML SDK 2.0 , который доступен здесь: http://www.microsoft.com/download/en/details.aspx?id=5124. Вам следует установить его в среде разработчика, и он поможет вам прочитать и измените содержимое файлов OpenXML в вашем приложении .NET.

Я не пытался работать с формулами, используя этот SDK, но я полагаю, что это возможно, однако, может потребоваться некоторая работа (например, написание парсера) для пересчета формул с вашей программой. Однако для этого есть обходной путь , но я не уверен, приемлемо ли это для вас. Вы можете сделать так, чтобы Excel переоценил все формулы самостоятельно, когда файл открывается пользователем. Вы можете найти некоторую информацию об этом здесь: OpenXML SDK: заставить Excel пересчитать формулу .

Я также рекомендую использовать OpenXML SDK 2.0. Инструмент повышения производительности , входящий в состав SDK. Он позволяет вам просматривать содержимое файла OpenXML и даже показывать вам код на c #, необходимый для его воссоздания программным способом, поэтому он может быть действительно полезным.

...