This media is not supported in your browser
VIEW IN TELEGRAM
Добрый день!
Довольно часто в своей работе нам приходится иметь дело с защищёнными диапазонами или листами. Мы ставим защиту для того, чтобы случайно ну или преднамеренно не изменить данные.
В таблицах есть штатная функция, которая подсвечивает защищённые диапазоны на листе, но она работает не всегда, о чем мы ранее писали.
Мы написали небольшой скрипт, который подсвечивает защищённые диапазоны, а также может одним цветом выделить все защищённые листы.
Делайте копию этой таблицы, скрипты в ней.
📗 Канал и Чат
📕 Оглавление канала
🏄 Заказ работы у нас
Довольно часто в своей работе нам приходится иметь дело с защищёнными диапазонами или листами. Мы ставим защиту для того, чтобы случайно ну или преднамеренно не изменить данные.
В таблицах есть штатная функция, которая подсвечивает защищённые диапазоны на листе, но она работает не всегда, о чем мы ранее писали.
Мы написали небольшой скрипт, который подсвечивает защищённые диапазоны, а также может одним цветом выделить все защищённые листы.
Делайте копию этой таблицы, скрипты в ней.
Пример кода:
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('| ПОДСВЕТКА |')
.addItem('Активировать подсветку защищённых диапазонов', 'fire')
.addItem('Деактивировать подсветку защищённых диапазонов', 'clearfire')
.addSeparator()
.addItem('Активировать подсветку защищённых листов', 'fireSh')
.addItem('Деактивировать подсветку защищённых листов', 'clearFireSh')
.addToUi();
}
/////////////////////////////////////////////////////////////
function fire() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const prs = sh.getProtections(SpreadsheetApp.ProtectionType.RANGE);
prs.forEach(x => {
if (x.canEdit()) {
x.getRange().setBackground('#00ff00');
};
});
ss.toast('Подсветка защищённых диапазонов активирована!')
}
/////////////////////////////////////////////////////////////
function clearfire() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const prs = sh.getProtections(SpreadsheetApp.ProtectionType.RANGE);
prs.forEach(x => {
if (x.canEdit()) {
x.getRange().setBackground(null);
};
});
ss.toast('Подсветка защищённых диапазонов деактивирована!')
}
/////////////////////////////////////////////////////////////
function fireSh() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets();
sh.forEach(x => {
let pr = x.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
console.log(pr[0])
if (pr && pr.canEdit()) { x.setTabColor('red') }
});
ss.toast('Подсветка защищённых листов активирована!')
}
/////////////////////////////////////////////////////////////
function clearFireSh() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets();
sh.forEach(x => {
let pr = x.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
console.log(pr)
if (pr && pr.canEdit()) { x.setTabColor(null) }
});
ss.toast('Подсветка защищённых листов деактивирована!')
}
📗 Канал и Чат
📕 Оглавление канала
🏄 Заказ работы у нас
🔥16👍7👎2😎1
Media is too big
VIEW IN TELEGRAM
🚀 Запускаем своё первое doGet-приложение в Google Таблицах
Хотите, чтобы ваши скрипты выполнялись по одной ссылке?
Это реально! Мы покажем, как за пару минут развернуть простое веб-приложение прямо в Google Таблицах.
🔥 Что это за приложение?
doGet-приложение запускает функцию, имя которой вы укажете в ссылке (?func=).
Например:
•
•
Всё работает в один клик, а код остаётся полностью скрытым.
💡 Зачем это нужно?
• Вы даёте коллегам только ссылку — без раскрытия кода.
• Приложение запускается от вашего аккаунта.
• Можно подключить сколько угодно функций и запускать их прямо из браузера.
⚡ Пример кода
В примере всего две функции:
•
•
🚀 Как это работает
•
•
Названия функций можно менять. Добавьте свои — и запускайте любое количество скриптов через
📺 В видео показано, как развернуть приложение и получить на него ссылку.
🔥 На интенсиве мы разберём такие приёмы подробно и соберём рабочие проекты прямо на ваших глазах.
t.me/google_sheets/1860
Хотите, чтобы ваши скрипты выполнялись по одной ссылке?
Это реально! Мы покажем, как за пару минут развернуть простое веб-приложение прямо в Google Таблицах.
🔥 Что это за приложение?
doGet-приложение запускает функцию, имя которой вы укажете в ссылке (?func=).
Например:
•
?func=clear — очистить таблицу,•
?func=color — закрасить её случайными цветами.Всё работает в один клик, а код остаётся полностью скрытым.
💡 Зачем это нужно?
• Вы даёте коллегам только ссылку — без раскрытия кода.
• Приложение запускается от вашего аккаунта.
• Можно подключить сколько угодно функций и запускать их прямо из браузера.
⚡ Пример кода
В примере всего две функции:
•
color() — заполняет каждый лист в таблице (массив 20×20) случайными цветами.•
clear() — очищает все листы в таблице.
function doGet(e) {
const funcName = e.parameters['func'];
console.log(funcName);
this[funcName]();
}
function clear() {
const ss = SpreadsheetApp.getActive();
const sheets = ss.getSheets();
for (let sh of sheets) {
sh.clear();
}
SpreadsheetApp.flush();
}
function color() {
const ss = SpreadsheetApp.getActive();
const sheets = ss.getSheets();
for (let sh of sheets) {
let arr = [];
for (let i = 0; i < 20; i++) {
arr[i] = [];
for (let j = 0; j < 20; j++) {
arr[i][j] = basicColors[getRandomInt(0, basicColors.length - 1)];
}
}
sh.getRange(1, 1, arr.length, arr[0].length).setBackgrounds(arr);
}
SpreadsheetApp.flush();
}
const basicColors = [
"#FF0000", // красный
"#00FF00", // зелёный
"#0000FF", // синий
"#FFFF00", // жёлтый
"#FFA500", // оранжевый
"#800080", // фиолетовый
"#00FFFF", // бирюзовый
"#FFC0CB", // розовый
"#A52A2A", // коричневый
"#FFFFFF", // белый
"#000000" // чёрный
];
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
🚀 Как это работает
•
[ссылка веб-приложения]?func=clear → моментальная очистка.•
[ссылка веб-приложения]?func=color → мгновенная заливка таблицы цветами.Названия функций можно менять. Добавьте свои — и запускайте любое количество скриптов через
?func=.📺 В видео показано, как развернуть приложение и получить на него ссылку.
🔥 На интенсиве мы разберём такие приёмы подробно и соберём рабочие проекты прямо на ваших глазах.
t.me/google_sheets/1860
1🔥20❤9