Макросы
Если мы хотим пользоваться методами CraftTechPE из плагина “Макросы” программы Р7 Офис Таблицы, то нам требуется очистить текстовое поле макросов и вставить следующий код:
Вариант 1
(function () { fetch('http://localhost:5322/api/code/get/3') .then(response => response.json()) .then(data => { const code = eval(data.mes); return new code(); }) .then(async crafttechApi => {
// Ваш код тут
})})();Вариант 2
async function getCrafttechApiAsync() { return fetch("http://localhost:5322/api/code/get/3") .then((response) => response.json()) .catch((err) => { Common.UI.alert({ msg: "Ошибка! Требуется запуск Crafttech PE!", title: "Ошибка запуска макроса", }); }) .then((data) => { const code = eval(data.mes); return new code(); });}3 - это новейшая версия API на данный момент и именно её мы запрашиваем в текущем примере. А если, например, мы хотим использовать прошлые версии crafttechApi, то нам нужно обратиться по url: http://localhost:5322/api/code/get/2_0_2 или http://localhost:5322/api/code/get/1.
Пример макроса для получения данных из текущего файла
(function () { fetch('http://localhost:5322/api/code/get/3') .then(response => response.json()) .then(data => { const code = eval(data.mes); return new code(); }) .then(async craftTechApi => { let currentPath = await craftTechApi.getCurrentFilePath() var handler = await craftTechApi.openFile(currentPath) const result = await craftTechApi.getSheetArray(handler, 'Лист1', 'A1:D4'); console.log(result); await craftTechApi.closeFile(handler) })})();Обратная связь: support@crafttech.ru