Сlipboard button in Sidebar using Google's `Apps Script`
Источник:
Adding copy to clipboard button to every google code prettify pre blocks in blogger
Источник:
••••••••••
https://docs.google.com/spreadsheets/d/1lSIGnmaqCOR-UfN7tZuHzdc5UEXRZVgst5XKRrsDx24/edit?usp=sharing
Обсудить:
#GAS #clipboard
Источник:
Adding copy to clipboard button to every google code prettify pre blocks in blogger
Источник:
••••••••••
https://docs.google.com/spreadsheets/d/1lSIGnmaqCOR-UfN7tZuHzdc5UEXRZVgst5XKRrsDx24/edit?usp=sharing
Обсудить:
#GAS #clipboard
Stack Overflow
Create a copy to clipboard button in Sidebar using Google's `Apps Script`
Is there a way to create a copy to clipboard button in Sidebar using Google's Apps Script?
My current code is the following, but the copy button is not working:
function createCalendarEvent() {
...
My current code is the following, but the copy button is not working:
function createCalendarEvent() {
...
Forwarded from Google Таблицы
ПОЛЕЗНЫЕ СКРИПТЫ от @GOOGLE_SHEETS
Друзья, за последние полгода мы создали для вас ряд полезных в быту скриптов, давайте вспомним про главные:
=
ОТПРАВЛЯТОР (В ТЕЛЕГРАМ-ЧАТЫ) PDF/JPG 2.0
t.me/google_sheets/643
Вы заполняете в Таблице конфиг отправки и получаете скрипт, который по расписанию отправляет диапазоны из ваших Таблиц в формате PDF/JPG в телеграм-чаты.
=
ОТПРАВЛЯТОР (В ТЕЛЕГРАМ-ЧАТЫ) PNG
t.me/google_sheets/604
Первая версия отправлятора – скрипт конвертирует диапазоны в PNG и отправляет в телеграм-чаты.
=
ТЕЛЕГРАМ-БОТ
t.me/google_sheets/556
Разворачиваете всё по инструкции и получаете Телеграм бота, который записывает всё, что ему пишут в Таблицу, а файлы записывает на ваш Google Диск.
=
СОБИРАТОР (ТАБЛИЦ В ДРУГИЕ В ТАБЛИЦЫ) 4
t.me/google_sheets/661
Это Таблица с конфигом для сбора Таблиц через sheets api. Скажем, вы компания, у которой 20 Таблиц региональных представителей и вам нужно регулярно эти 20 Таблиц собирать в одну, что-то фильтруя и что-то добавляя.
=
🧞♂️ПРЕВРАЩАТОР ЛИСТА ТАБЛИЦЫ В XLSX / PDF / CSV
t.me/google_sheets/652
— файл мгновенно скачивается
— либо сохраняется на Google Диск
=
ВЫГРУЖАТОР
t.me/google_sheets/635
Создаём в Таблице реестр файлов из выбранной папки, вложенность - учитываем
=
ДОПУСКАТОР 2
t.me/google_sheets/580
Убираем из файлов всех пользователей кроме себя и закрываем доступ по ссылке.
==
ОТПРАВЛЯЕМ СМС ИЗ ТАБЛИЦЫ
t.me/google_sheets/666
=
ПАРСИМ WILDBERRIES ИЗ ТАБЛИЦЫ 2
t.me/google_sheets/686
– 1000 карточек товара за 9 секунд!
===
Друзья, все скрипты бесплатные, но если вы захотите поддержать нас – подписывайтесь на патреон или делайте прямой перевод. Спасибо 🤟
Друзья, за последние полгода мы создали для вас ряд полезных в быту скриптов, давайте вспомним про главные:
=
ОТПРАВЛЯТОР (В ТЕЛЕГРАМ-ЧАТЫ) PDF/JPG 2.0
t.me/google_sheets/643
Вы заполняете в Таблице конфиг отправки и получаете скрипт, который по расписанию отправляет диапазоны из ваших Таблиц в формате PDF/JPG в телеграм-чаты.
=
ОТПРАВЛЯТОР (В ТЕЛЕГРАМ-ЧАТЫ) PNG
t.me/google_sheets/604
Первая версия отправлятора – скрипт конвертирует диапазоны в PNG и отправляет в телеграм-чаты.
=
ТЕЛЕГРАМ-БОТ
t.me/google_sheets/556
Разворачиваете всё по инструкции и получаете Телеграм бота, который записывает всё, что ему пишут в Таблицу, а файлы записывает на ваш Google Диск.
=
СОБИРАТОР (ТАБЛИЦ В ДРУГИЕ В ТАБЛИЦЫ) 4
t.me/google_sheets/661
Это Таблица с конфигом для сбора Таблиц через sheets api. Скажем, вы компания, у которой 20 Таблиц региональных представителей и вам нужно регулярно эти 20 Таблиц собирать в одну, что-то фильтруя и что-то добавляя.
=
🧞♂️ПРЕВРАЩАТОР ЛИСТА ТАБЛИЦЫ В XLSX / PDF / CSV
t.me/google_sheets/652
— файл мгновенно скачивается
— либо сохраняется на Google Диск
=
ВЫГРУЖАТОР
t.me/google_sheets/635
Создаём в Таблице реестр файлов из выбранной папки, вложенность - учитываем
=
ДОПУСКАТОР 2
t.me/google_sheets/580
Убираем из файлов всех пользователей кроме себя и закрываем доступ по ссылке.
==
ОТПРАВЛЯЕМ СМС ИЗ ТАБЛИЦЫ
t.me/google_sheets/666
=
ПАРСИМ WILDBERRIES ИЗ ТАБЛИЦЫ 2
t.me/google_sheets/686
– 1000 карточек товара за 9 секунд!
===
Друзья, все скрипты бесплатные, но если вы захотите поддержать нас – подписывайтесь на патреон или делайте прямой перевод. Спасибо 🤟
Serverless Database for Redis
Free
Commands Limit-Max 10,000 Commands Daily
Max Data Size Per DB-256 MB
Persistence ✔️
Free
Commands Limit-Max 10,000 Commands Daily
Max Data Size Per DB-256 MB
Persistence ✔️
Upstash: Serverless Data Platform
Upstash is a serverless data platform providing low latency and high scalability for real-time applications. Optimize your data infrastructure with Upstash's managed services for Redis, Vector, QStash, and other key data technologies.
Get the latitude and longitude of any
address on Google Maps.
#maps
address on Google Maps.
/**
* Get the latitude and longitude of any
* address on Google Maps.
*
* =GOOGLEMAPS_LATLONG("10 Hanover Square, NY")
*
* @param {String} address The address to lookup.
* @return {String} The latitude and longitude of the address.
* @customFunction
*/
const GOOGLEMAPS_LATLONG = (address) => {
const { results: [data = null] = [] } = Maps.newGeocoder().geocode(address);
if (data === null) {
throw new Error('Address not found!');
}
const { geometry: { location: { lat, lng } } = {} } = data;
return ${lat}, ${lng};
};
Вот тут эта и другие формулы с гугл картами #maps
Digital Inspiration
Google Maps Formulas for Google Sheets
Use Google Maps formulas inside Google Sheets to calculate distances, travel time, get driving directions, look up postal codes with reverse geocoding and more!
How to create tree map chart graph in google docs document
video
video
YouTube
how to create tree map chart graph in google docs document
In this video, I will show you, how to create tree map chart graph in google docs document.
** Premium Service **
http://bit.ly/2TiFH5l
http://bit.ly/2NaJtY9
http://bit.ly/2IezzWG
Facebook Page:
https://goo.gl/mVvmvA
https://goo.gl/FmZ84U
Please Subscribe…
** Premium Service **
http://bit.ly/2TiFH5l
http://bit.ly/2NaJtY9
http://bit.ly/2IezzWG
Facebook Page:
https://goo.gl/mVvmvA
https://goo.gl/FmZ84U
Please Subscribe…
Проверка содержит ли ячейка checkbox
#snippet #GAS
#snippet #GAS
/**
* Проверка содержит ли ячейка checkbox
*
* @param {RANGE} cell
* @returns {Boolean}
*/
function isCheck(cell){
var rule = cell.getDataValidation();
if (rule != null&&rule.getCriteriaType()=='CHECKBOX') {
var criteria = rule.getCriteriaType();
var args = rule.getCriteriaValues();
return true
} else {
return false
}
}GAS CacheService
EnhancedCacheService
1.Поддержка собственных типов JavaScript, таких как: число, логическое значение, объект.
2.Поддержка значений более 128 КБ
3.Дополнительная информация о записях кеша - получить дату последнего обновления записи
github
blog
EnhancedCacheService
1.Поддержка собственных типов JavaScript, таких как: число, логическое значение, объект.
2.Поддержка значений более 128 КБ
3.Дополнительная информация о записях кеша - получить дату последнего обновления записи
github
blog
GitHub
GoogleAppsScripts/EnhancedCacheService at master · yinonavraham/GoogleAppsScripts
A collection of scripts for Google Apps Scripts. Contribute to yinonavraham/GoogleAppsScripts development by creating an account on GitHub.
const generateRandomColour = () => "#" + Math.floor(Math.random()*16777215).toString(16);Быстрое и простое тестирование JavaScript с помощью «Assert»
Код добавляющий Assert в консоль Google App Script
Пример
Почитать про Assert
Код добавляющий Assert в консоль Google App Script
Пример
Почитать про Assert
Pastiebin
Pastiebin.com
6090fc740c99b
6090fc740c99b
Pastie Bin is place to share your code / text snippets it also supports threads for people to post back to your current threads to allow easy collaboration
Загрузка данных со страницы в виде файла
Источник:
Если есть задача сформировать на лету данные в файл и загрузить их, например, трансформировать таблицу в CSV файл, то есть простой способ как загрузить такие данные:
Обсудить:
Источник:
Если есть задача сформировать на лету данные в файл и загрузить их, например, трансформировать таблицу в CSV файл, то есть простой способ как загрузить такие данные:
const downloadAsCSVFile = function(csv, fname) {
let csvfile = new Blob([csv], {type: 'text/csv'})
let downlink = document.createElement('a')
downlink.download = fname
downlink.href = window.URL.createObjectURL(csvfile)
downlink.style.display = 'none'
document.body.appendChild(downlink)
downlink.click()
document.body.removeChild(downlink)
}
downloadAsCSVFile(anyDataString, 'filename.csv')
••••••••••Обсудить:
Forwarded from DidacticСardsBot
Benchmark: fetchAll method in UrlFetch service for Google Apps Script
Источник:
В серверном скрипте установлен сон на 5 секунд. Для fetchAll () общее затраченное время составляет 5,5 с.
Для fetchAll () ResponsedOrder соответствует порядку запросов. Порядок запросов: действие1, действие2, действие3, действие4 и действие5.
Для fetchAll () actualOrder НЕ совпадает с порядком запросов. Порядок отличается каждый раз.
Для fetch () добавляется 5-секундный сон при каждой выборке. Таким образом, общее затраченное время составляет 27,0 с.
Для fetch () ResponsedOrder соответствует порядку запросов.
Для fetch () actualOrder совпадает с порядком запросов.
Резюме
Было обнаружено, что метод fetchAll работает с асинхронной обработкой.
После выполнения асинхронной обработки возвращаемые значения переупорядочиваются в соответствии с порядком запросов.
Также было обнаружено, что если вы хотите получить данные из нескольких URL-адресов, стоимость процесса UrlFetchApp.fetchAll()намного ниже, чем при UrlFetchApp.fetch()использовании цикла for.
Ограничение количества запросов
Могу подтвердить, что 1000 запросов работают нормально. Но я не мог найти ограничения.
••••••••••
Обсудить:
Источник:
В серверном скрипте установлен сон на 5 секунд. Для fetchAll () общее затраченное время составляет 5,5 с.
Для fetchAll () ResponsedOrder соответствует порядку запросов. Порядок запросов: действие1, действие2, действие3, действие4 и действие5.
Для fetchAll () actualOrder НЕ совпадает с порядком запросов. Порядок отличается каждый раз.
Для fetch () добавляется 5-секундный сон при каждой выборке. Таким образом, общее затраченное время составляет 27,0 с.
Для fetch () ResponsedOrder соответствует порядку запросов.
Для fetch () actualOrder совпадает с порядком запросов.
Резюме
Было обнаружено, что метод fetchAll работает с асинхронной обработкой.
После выполнения асинхронной обработки возвращаемые значения переупорядочиваются в соответствии с порядком запросов.
Также было обнаружено, что если вы хотите получить данные из нескольких URL-адресов, стоимость процесса UrlFetchApp.fetchAll()намного ниже, чем при UrlFetchApp.fetch()использовании цикла for.
Ограничение количества запросов
Могу подтвердить, что 1000 запросов работают нормально. Но я не мог найти ограничения.
••••••••••
Обсудить:
Gist
Benchmark: fetchAll method in UrlFetch service for Google Apps Script
Benchmark: fetchAll method in UrlFetch service for Google Apps Script - submit.md
Forwarded from DidacticСardsBot
В этом руководстве я покажу вам, как скрыть лист в электронной таблице Google Sheets с помощью скрипта приложений. Я также покажу вам, как показать или активировать ранее скрытый лист.
Источник:
••••••••••
Обсудить:
Источник:
••••••••••
Обсудить:
spreadsheet.dev
Hide or show a sheet in Google Sheets using Apps Script
Learn how to hide a sheet, or show a hidden sheet in Google Sheets using Apps Script.
Forwarded from Azamat Zhaksybayev
Trello Api + GSheet
Оставлю здесь, может понадобится кому-нибудь. Из таблицы можно создать карточку в Трелло и обратно в таблицу получить статус карточки через вебхуки. В таблице есть ссылка на открытую доску в трелло для теста
https://docs.google.com/spreadsheets/d/1AqV7u2t2ZtwsXyY4TFo1yJJ378nQPDluDHVUf-NYGD8/edit?usp=sharing
Оставлю здесь, может понадобится кому-нибудь. Из таблицы можно создать карточку в Трелло и обратно в таблицу получить статус карточки через вебхуки. В таблице есть ссылка на открытую доску в трелло для теста
https://docs.google.com/spreadsheets/d/1AqV7u2t2ZtwsXyY4TFo1yJJ378nQPDluDHVUf-NYGD8/edit?usp=sharing
Google Docs
GSheet + Trello
Заказы
1. Чтобы создать карточку в Трелло нажмите на верхнем меню "Заказы" - "Новый Заказ"
2. После создания новой строки внесите остальные данные вручную (Дата, срок, описание, и т.д.) - Данные автоматически впишутся в карточку трелло по триггеру через…
1. Чтобы создать карточку в Трелло нажмите на верхнем меню "Заказы" - "Новый Заказ"
2. После создания новой строки внесите остальные данные вручную (Дата, срок, описание, и т.д.) - Данные автоматически впишутся в карточку трелло по триггеру через…
Forwarded from volond
This media is not supported in your browser
VIEW IN TELEGRAM
Понадобилось мне синхронизировать заголовки столбцов на разных листах, но хотелось какой-нибудь функционал, чтобы не приходилось бегать и производить настройку с одного места.
Добавил названия листов и указал в какой строке находятся заголовки в этом листе
Формулой подтянул заголовки, но как известно попытка внести данные в ячейки, которые затрагивают эту формулу ломают эту формулу ,поэтому была был придуман какой функционал
Он позволяет изменить заголовок в соответствующем столбце или добавить его в конец строки заголовков соответствующего листа
Код
Добавил названия листов и указал в какой строке находятся заголовки в этом листе
Формулой подтянул заголовки, но как известно попытка внести данные в ячейки, которые затрагивают эту формулу ломают эту формулу ,поэтому была был придуман какой функционал
Он позволяет изменить заголовок в соответствующем столбце или добавить его в конец строки заголовков соответствующего листа
Код
Отфильтруем Массив объектов по переданному массиву ключей
/**#snippet #JS
* Отфильтруем Массив объектов по переданному массиву ключей
* Значения этих в объектах должны соответствовать истине
* @param {Array} filter
* @param {Array[Object]} obj
* @returns {Array}
* var filter=['a','b']
* var obj=[{a:false,b:1,c:3},{a:true,b:1,c:0}]
* return [{a:true,b:1,c:0}]
*/
function filterObject(filter,obj){
var some=(x)=>!x
return obj.filter(row=>!filter.map(key=>row[key]).some(some))
}