Перейти к содержимому

Макросы

Если мы хотим пользоваться методами 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)
})
})();