Volond Apps
221 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
Использую по жизни:
Научите меня ловить рыбу , а не кормите ей!
Движение вперед начинается с хорошего пинка под зад!
Правильно заданный вопрос уже половина ответа!
То что я не могу сделать сам, я не понимаю!
Разделить строку по разделитель на первый элемент и остаток.
const ferstSplit=({delim=",",str})=>{
var [a,...rest]=str.split(delim)
return [a,rest.join(delim)]}
console.log(ferstSplit({str:"1,2,3"}))
Банк знаний по Telegram ботам и не только...
Company
@google_sheets and @Volond presents...

Ссылки на АPI Ботов и Примеры на Google Apps Script

1.Telegram
2.Viber
3.Discort
4.VK
5.Google Chat
6.Facebook
7.Slack
8.Trello
9.WhatsApp

...to be continued
Пишите в комментариях найденное Вами... Добавим
const getAllValuesOrKeysFromColsString = (cols, obj) => cols == '@' ? Object.values(obj) : cols.split(",").map(k => obj[k]);
console.log(getAllKeyOrCols('@', { a: 1, b: 2,c:3 }));//[ 1, 2, 3 ]
console.log(getAllKeyOrCols('a', { a: 1, b: 2 ,c:3}));//[ 1 ]
console.log(getAllKeyOrCols('a,c', { a: 1, b: 2 ,c:3}));//[ 1, 3 ]
Volond Apps pinned «Банк знаний по Telegram ботам и не только... Company @google_sheets and @Volond presents... Ссылки на АPI Ботов и Примеры на Google Apps Script 1.Telegram 2.Viber 3.Discort 4.VK 5.Google Chat 6.Facebook 7.Slack 8.Trello 9.WhatsApp ...to be continued Пишите…»
/**
* Encodes the given value to use within a URL.
*
* @param {value} the value to be encoded
*
* @return the value encoded using URL percent-encoding
*/
function URLEncode(value) {
return encodeURIComponent(value.toString());
}
var arrSheet=[
[1,2,3],
[1,4,5],
[2,4,5],
]

var arrApi=[
[1,2,3],
[5,4,5],
[3,4,5]];

function applyUniqueById() {
const s = new Set(arrSheet.map(g => g[0]));
const setArr = arrSheet.concat(arrApi.filter(g => !s.has(g[0])))
Logger.log(setArr)
}
Таблица Получение категорий
function getKat() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Вход');
var outSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Выход');
var range = sheet.getDataRange();
var values = range.getValues();
values.shift(1);
var kat = values.map(e => e.pop());



var links = curry((j, o, e) => {
var temp = kat[j]

o[e] = o.hasOwnProperty(e) ? [...new Set([...o[e], temp])] : [temp]
return o
})

var z = {}
values.forEach((r, j) => {

//console.log(r)
r.filter(q => q).forEach((cell) => {
var katLinks = links(j);
z = katLinks(z, cell)
})

})

const flatArrAddKey = Object.keys(z).map(e => [e, ...z[e]])


outSheet.getRange(1,1,w.length,w[0].length).setValues(normaliseArr(w))

}
Реагируем на триггер onEdit() в Google Apps Script (GAS) только на определённых листах
function onEdit(e){
var eNameSheet=e.range.getSheet().getName()
var sheetNameAction=['Sheet1','Sheet2']

if (sheetNameAction.indexOf(eNameSheet)+1){
console.log('что то делаем')
}
}

#onEdit #GAS
Следующая статья цикла:
"Банк знаний по ботам и не только... "
🛠🤖
В этой статье....
1.Telegram
Полезные боты для разработки ,
Группы и каналы
Примеры
Telegram Bot и Google Form
Telegram и GMail-боты
Обычное подменю клавиатуры в Telegram Bot
Как ограничить доступ к Telegram-ботам
Получить идентификатор чата и название группы Telegram
Яндекс.Алиса и бот Telegram на PHP с единым функционалом
Создаём Telegram-бота с нуля на Python
13. TinyURL
"Сокращатель" ссылок
15.Яндекс-Алиса
Простая и пошаговая интеграция Яндекс-Алисы и 1С

...to be continued
Пишите в комментариях найденное Вами... Добавим ‼️
Volond Apps pinned «Следующая статья цикла: "Банк знаний по ботам и не только... " 🛠🤖 В этой статье.... 1.Telegram Полезные боты для разработки , Группы и каналы Примеры Telegram Bot и Google Form Telegram и GMail-боты Обычное подменю клавиатуры в Telegram Bot Как ограничить…»
Forwarded from Рестарт
Miro - это платформа интерактивных досок
для совместной работы

Бесконечно масштабируемый холст и веб-доска Miro позволяют вам работать так, как вы хотите. Дайте волю своему творчеству, планируйте проекты со всех сторон и создавайте централизованные центры информации, чтобы держать всех в курсе. Вы сможете увидеть общую картину и детали.

Будьте креативным. Будьте продуктивны. Откуда угодно.

В бесплатном тарифе только пять досок и отсутствие приятных плюшек вроде видеочата, секундомера и т.д.

GIT
Класс для управления Properties
#snippet #GAS
/**
* Класс для управления Properties
* DocumentProperties or ScriptProperties or UserProperties
*
* Creates an instance of Props.
* @param {string} prop
* @memberof Props
* @constructor
* https://developers.google.com/apps-script/reference/properties
* @example
* const testProps=()=>{
* const scrProp=new Props("ScriptProperties");
* scrProp.set("v","1")
* concole.log(scrProp.get("v"))
* }
* @return {} Class Properties
*/
class Props {


constructor(prop) {
this[prop] = PropertiesService['get' + prop]();
this.type = prop
return this;
}

get(name) {
return this[this.type].getProperty(name);
}

getProperties(name) {
return this[this.type].getProperties();
}
type(prop) {
return this.type;
}
set(name, value) {
return this[this.type].setProperty(name, value);
}

forget(name) {
return this[this.type].deleteProperty(name);
}
forgets(names)
Таймер в боте на скриптах
Таймер в Боте на скриптах
function finalCountdown() {
var token = '<token>';;
var chatID = 'chatID';
var url = 'https://api.telegram.org/bot' + token +
'/sendMessage?chat_id=' + chatID + '&text=It\'s the final countdown!';
var response = UrlFetchApp.fetch(url);
response = JSON.parse(response.getContentText());
var msgID = response.result.message_id;
Utilities.sleep(1000);
var baseUrl = 'https://api.telegram.org/bot' + token +
'/editMessageText?chat_id=' + chatID + '&message_id=' + msgID + '&text=';
var w = { '0': "0️⃣", '1': "1️⃣", '2': "2️⃣", '3': "3️⃣", '4': "4️⃣", '5': "5️⃣", '6': "6️⃣", '7': "7️⃣", '8': "8️⃣", '9': "9️⃣", ":": "▪️" }

var url;
for (var i = 0; i < 15; ++i) {

var date = new Date();
var timestamp = date.getTime();
var timezone = Session.getScriptTimeZone()
var times = Utilities.formatDate(date, timezone, "HH:mm:ss");
url = baseUrl + [...times.toString()].map(e => w[e]).join();
UrlFetchApp.fetch(url);
Utilities.sleep(1000);
}
url = baseUrl + '💣Boom!';
UrlFetchApp.fetch(url);
}
ARRAYFORMULA не поддерживает GOOGLETRANSLATE :)
‼️Но выход есть‼️
=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(
GOOGLETRANSLATE(TEXTJOIN(". ", 1, B20:B24), "en", "de"), "."))))
Forwarded from volond
Генерим alphabet формулой
=arrayformula(char(SEQUENCE(26;1;65)))