Volond Apps
Відкрити в Telegram
Программирование для души и от лени Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Показати більше246
Підписники
Немає даних24 години
Немає даних7 днів
Немає даних30 день
Архів дописів
246
LocalLogger позволяет:
Записывать логи в выделенный лист таблицы с метками времени и уровнями важности
Настрaивать пороговый уровень для отправки email-уведомлений
Автоматически форматировать логи разными цветами в зависимости от уровня важности
Добавлять информацию о пользователе в логи
246
Считаем переходящее время
Формат ячейки длительность
=if(and(C4<>"";D4<>""); if(C4<D4;(today()+D4)-(today()+C4);(today()+D4+1)-(today()+C4));)246
Repost from Google Apps Script | Канал
Google Sheets API не работает с датами JS. Вообще никто нормальный с датами JS работать не должен. Я, например, очень рад, что освоил этот странный объект 🤪 Очень похоже на Жемалистовое дерево 😉
Так вот, даты в Таблицах - числа, и это не все комбо, еще Таблицы позволяют
USER_ENTERED — это когда даты сначала еще и строки.
Для "легкого ввода" используйте текст. Но если сильно нужно конвертировать даты в числа Таблиц и обратно в Apps Script, то я пользуюсь этим
Туда
function toGoogleSheetsDateNumber(date, timezoneOffset) {
const _date = new Date(date);
timezoneOffset = timezoneOffset || _date.getTimezoneOffset();
const _start = new Date(Date.UTC(1899, 11, 30, 0, 0, 0, 0));
return ((_date.getTime() - _start.getTime()) / 60000 - timezoneOffset) / 1440;
}
Обратно
function fromGoogleSheetsDateNumber(number, timezoneOffset) {
const intPart = Math.floor(number);
const fracPart = number - intPart;
timezoneOffset = timezoneOffset || new Date().getTimezoneOffset();
const time = Math.round(fracPart * 24 * 60 * 60 * 1000) + timezoneOffset * 60000;
const date = new Date(Date.UTC(1899, 11, 30 + intPart) + time);
return date;
}
Полезная ссылка https://stackoverflow.com/questions/57360205/how-to-convert-a-js-date-programmatically-into-a-google-sheet-serial-number-an246
Repost from Провод
Плагин, который красиво отформатирует твой код и сделает его понятнее и последовательнее.
Позволяет сортировать разные данные: объекты, импорты, типы TypeScript, перечисления, свойства JSX, атрибуты Svelte и т.д.
Всё это упрощает совместную работу и делает код визуально привлекательным и гармоничным.
Найти репозиторий можно тут.
@begincode
246
Validate Phone Numbers with Javascript & HTML
Проверка номера телефона очень важна для вашего бизнеса. Это позволяет вам проверить информацию от клиентов и убедиться, что вы имеете дело с реальным клиентом. Кроме того, это поможет вам эффективно расширить охват. В этом посте вы найдете подробную информацию о проверке номера телефона с помощью JavaScript и HTML. »
246
javaScript
//запустим наш скрипт через 30 сек
function doGet(e) {
try {
ScriptApp.newTrigger('takeScreenshotAndUpload1')
.timeBased()
.after(30000)
.create();
} catch (error) {
}
}
// Эту функцию нужно натравим на изменяемые данные
// и впишем в нее url опубликованого как webhook скрипта
function fetch(d=""){
return UrlFetchApp.fetch("https://script.google.com/macros/s/AKfycbz5WoZSUTVNqYEK0PCRjjppLNoqSv9b6JWeKLhsscPP_pbVX7iED6uTetxX9k8y3PGz/exec")
}
function takeScreenshotAndUpload1(e){
//Тут какая-то логика
ScriptApp.getProjectTriggers().forEach(trigger => {
if (trigger.getHandlerFunction() === 'takeScreenshotAndUpload1') {
trigger.delete();
}
})
}246
246
=byrow(A2:A100;lambda(ss;JOIn("|";ifna(filter($N$2:$N$7;BYROW($M$2:$M$7;lambda(s;REGEXMATCH(ss;".*"&s&".*"))));""))))246
HyperFormula guide | HyperFormula (v2.6.0)
https://hyperformula.handsontable.com/#what-is-hyperformula
246
javaScript
/**
* Функция `renameME` предназначена для переименования файла Google Sheets документа,
* добавляя текущую дату и время в новое имя файла.
*
* @param {GoogleAppsScript.Spreadsheet.Spreadsheet|string} [ss=''] - Необязательный параметр.
* Ссылка на объект Google Sheets документа (или его идентификатор) для переименования.
* Если параметр не указан, будет использован активный документ.
*/
function renameME(ss='') {
ss=ss||SpreadsheetApp.getActive();
var nameDate=ss.getName();
var [name,date,time]=nameDate.split("|");
var d=new Date()
const time24Hr = convertTo24HourFormat();
var newName=name+"|"+[d2s(d,"dd-MM-yy"),time24Hr].join("|");
ss.setName(newName);
}