Производительность пользовательских функций Excel - отключить автобезопасность в Excel онлайн?

При создании и тестировании пользовательских функций для надстройки Office JS я измерил производительность для разных платформ и получил совершенно разные результаты. Я ищу возможности для улучшения, в частности, я хотел бы знать, можно ли и как отключить автоматическое сохранение в Office в Интернете, потому что это кажется причиной по крайней мере одной из моих проблем.

Две основные проблемы:

  • Рабочий стол Excel в версии для Windows работает довольно медленно
  • Excel Online не поддерживает большое количество функций

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

Мы протестировали поведение Excel с помощью

  • очень простая функция, просто возвращающая текущее значение даты и времени
  • более сложная функция, которая получает информацию, рассчитанную на веб-сервере

Итак, в зависимости от того, какой сценарий мы тестируем, результаты будут одинаковыми. В более сложном случае Excel Online завершает работу примерно при 50 000 формул, а в простом сценарии - где-то между 50 000–100 000 формул.

Что касается производительности, кажется, что пока работает Excel Online, он работает так же быстро, как Excel на MAC, и оба в два раза быстрее, чем Excel Desktop в Windows. Не говоря уже о том, что COM и даже VBA намного быстрее, чем любой Javascript, добавляемый во время выполнения.

Так есть ли способ отключить автобезопасность, или я просто заблуждаюсь, даже пытаясь запустить такие большие рабочие листы с помощью Excel онлайн и технологии Office JS? Следует ли все же делать такие вещи с помощью технологии COM? Мне очень нравится совместимость надстроек JS ...


person Developer    schedule 12.08.2019    source источник
comment
Привет, отличные вопросы, они, вероятно, потребуют много последующих действий, чтобы понять, что в полной мере происходит. Можете ли вы связаться с нами (командой надстроек Excel), и мы проведем расследование? Можно начать с обращения по адресу [email protected], и мы поможем вам и ответим примечаниями.   -  person Keyur Patel - MSFT    schedule 12.08.2019
comment
Я сделал, спасибо за сотрудничество   -  person Developer    schedule 19.08.2019


Ответы (1)


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

Но у Excel Online есть ограничения, связанные с большими наборами данных, и для этого мы обычно рекомендуем настольные приложения Mac / Com. В настоящее время платформа оптимизирована для выполнения веб-запросов и вычислений на стороне клиента (какие vba и com лучше).

С точки зрения повышения производительности веб-запросов рекомендуется использовать механизм пакетной обработки, при котором вы ставите в очередь вызовы пользовательских функций. Вы можете найти подробный образец здесь: https://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-batching.

Кроме того, в настоящее время вы не можете отключить автосохранение через API, но это хорошая функция. можете ли вы разместить его на нашем канале User Voice?

Благодарность!

person Keyur Patel - MSFT    schedule 12.08.2019
comment
Я разместил его на UserVoice, спасибо за предложение officepdev.uservoice.com/forums/ - person Developer; 16.08.2019