const sheetName = 'Sheet1';
const sheet = book.getSheetByName(sheetName);
if(sheet){
cnsole.log(`Лист с именем ${sheetName} есть`);
}
const sheetName = 'Sheet1';
const sheet = book.getSheetByName(sheetName) || book.insertSheet(sheetName);
function findArray ($ar, $findValue, $executeKeys){
$result = array();
foreach ($ar as $k => $v) {
if (is_array($ar[$k])) {
$second_result = findArray ($ar[$k], $findValue, $executeKeys);
$result = array_merge($result, $second_result);
continue;
}
if ($v === $findValue) {
foreach ($executeKeys as $val){
$result[] = $ar[$val];
}
}
}
return $result;
}
/**
* @file Dragg down a formula
* @url https://qna.habr.com/q/709715
* */
/**
* User action. Runs the snippet
*/
function run() {
const sheet = SpreadsheetApp.getActiveSheet();
const base = sheet.getRange('C3:C');
const colFormula = sheet.getRange('J3');
draggDownFormulas_(base, colFormula);
}
/**
* @param {GoogleAppsScript.Spreadsheet.Range} base
* @param {GoogleAppsScript.Spreadsheet.Range} colFormula
*/
function draggDownFormulas_(base, colFormula) {
const baseValues = base.getValues();
const lastBase =
baseValues.length - baseValues.reverse().findIndex(row => row[0] !== '');
const colFormulaFormula = colFormula.getFormula();
colFormula
.getSheet()
.getRange(base.getRow(), colFormula.getColumn(), lastBase)
.setFormula(colFormulaFormula);
}
C
заполнена на одну строку ниже, чем массив данныхJ3
$products = $this->getProductList();
if ($products) {
$products = $this->getProductList();
if (is_iterable($products)) {
$products = $this->getProductList();
if (is_countable($products)) {
$params = [
'cmd' => [
'kp_num' => 'crm.deal.list?' . http_build_query(
[
'filter' => [
'UF_CRM_***' => '111',
],
'select' => [
'ID',
'COMPANY_ID',
'STAGE_ID',
'UF_CRM_***',
'DATE_MODIFY'
]
]
),
'ord_num' => 'crm.deal.list?' . http_build_query(
[
'filter' => [
'UF_CRM_***' => '222',
],
'select' => [
'ID',
'COMPANY_ID',
'STAGE_ID',
'UF_CRM_***,
'DATE_MODIFY'
]
]
),
]
];
wget -r -k -l 7 -p -E -nc http://site.com/
let obj = {}
for(let i =0; i<1000; i++){
obj['i'+i]=i
}
console.time('time')
for(let i =0; i<1000; i++){
const objResult = obj['i'+i];
}
console.timeEnd('time')
let obj = []
for(let i =0; i<1000; i++){
obj.push('i'+i)
}
console.time('time')
for(let i =0; i<1000; i++){
const arrResult = obj.find(el => el === 'i'+i);
}
console.timeEnd('time')
getTime
.function isDate(value){
return value && value.getTime;
}
function isDate(date){
return date instanceof Date && !isNaN(date.valueOf());
}
var birthday1 = ss1.getRange("D8").getValue();
var birthday = isDate(birthday1) ?
Utilities.formatDate(birthday1, "GMT+3", "dd-MM-yyyy") :
undefined;
onEdit
из другой функции или из редактора.TypeError: Cannot read property 'range' of undefined (строка 3, файл se)
se
в 3й строке
есть некоторая переменная со значением undefined
, свойство range
которой прочитать невозможно. Тут все очевидно - у undefined
нет свойств.e
. И мы ее получаем в системную функцию onEdit
. Это означает, что система сама передает контекст в эту функцию./**
* Тестирование триггера для события EDIT
*/
function runOnEdit() {
var source = SpreadsheetApp.getActive();
var range = source.getRangeByName('Sheet!!B26');
/**
* @type {GoogleAppsScript.Events.SheetsOnEdit}
*/
var e = {
authMode: ScriptApp.AuthMode.LIMITED,
oldValue: undefined, // ну или что хотите
range: range,
value: range.getValue(),
source: source,
triggerUid: 0,
user: Session.getActiveUser(),
};
onEdit(e);
}
/**
*
* @param {GoogleAppsScript.Events.SheetsOnEdit} e
*/
function onEdit(e) {
// Работает простой триггер
}