Excel получает JavaScript


Последние новости немного, очень мало и очень-очень поздно. Microsoft объявила, что в Excel скоро будет поддержка JavaScript, но только для функций. В электронной таблице все еще нет четкого способа создания сценариев.

Приняв одно из самых разрозненных решений за всю историю Microsoft, еще в 1998 году команда разработчиков языков решила убить Visual Basic 6, чтобы повысить шансы ее новой инициативы .NET на успех.

Причина, по которой он был и остается отключенным, заключается в том, что Office использовал VBA в качестве языка макросов или сценариев, а VBA — это, по сути, VB6. Несмотря на несколько попыток внедрить .NET в Office, большинство пользователей придерживаются VBA в качестве языка сценариев. Теперь, когда .NET также выходит из строя, кажется сомнительным, что он когда-либо станет средой сценариев для Excel.

Пользователи просили Microsoft рассмотреть возможность добавления Python в Office, и даже ходили слухи, что эта идея находится на рассмотрении, поэтому странно, что на самом деле у нас есть объявление о том, что Excel теперь поддерживает JavaScript, но только для функций внутри ячеек. Это не попытка добавить альтернативный язык сценариев.

Ключом к любому языку сценариев Office является доступ к объектной модели, а у JavaScript нет доступа к ней. Вместо этого была предоставлена возможность использовать функции JavaScript в формулах ячеек:

function ADD42 (a, b) {

вернуть a + b + 42;

} Такие функции затем можно использовать в электронной таблице со ссылками на ячейки в качестве аргументов:

ADD42 (A1, A2)

Вы можете настроить параметры для приема как диапазона ячеек, так и отдельных ячеек.

Вы даже не пишете JavaScript в Office. Файл .js содержит функции, а файл .json регистрирует их в Excel. Файл HTML сообщает Excel, где находится файл .js, а файл манифеста XML сообщает ему, где находятся все файлы — звучит как слишком большая конфигурация, если вы спросите меня. Файл JSON довольно прост и содержит описание функции JavaScript.

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

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

Также обратите внимание, что это не отдельное средство Excel. Файлы HTML, JS и JSON должны обслуживаться через localhost. Думайте об этом как о способе создания функций JavaScript, которые могут доставлять свои данные в Excel, а не как о чем-то с глубокой интеграцией с Excel.

Трудно поверить, что существует глубокая техническая причина, по которой в Office нет нескольких языков сценариев. Например, в LibreOffice есть Basic (например, VBA), BeanShell, JavaScript и Python — вы даже можете сказать, что их слишком много. Это должна быть офисная политика (каламбур) или маркетинг, и удивительно, что по прошествии столь длительного времени все еще мало ясного видения Office как компонента в более крупной системе. Так было не всегда.


Добавить комментарий