Извлечение кадастровых №
столбец 26 (Z) google таблицыuser_2065311
javascript
a year ago
3.8 kB
4
Indexable
''' Инструкции по использованию извлечение кадастровых номеров столбец 26 (Z): 1. Откройте Google Sheets и перейдите в “Extensions” (Дополнения) -> Apps Script. 2. Удалите содержимое редактора и вставьте приведенный выше скрипт. 3. Сохраните проект. 4. Запустите функцию extractCadastreNumbers, чтобы начать процесс извлечения кадастровых номеров. 5. Просмотрите журналы выполнения (Logs), чтобы увидеть сообщения об отладке. Для этого перейдите в View -> Logs или нажмите Ctrl + Enter. Объяснение: • Чтение данных за один раз: Чтение всех строк за один раз и обработка их в памяти. • Запись данных: Подготовка всех данных для записи за один раз и запись в диапазон ячеек. • Без ограничения строк: Убраны ограничения на количество обрабатываемых строк, скрипт обрабатывает все строки за один раз. Попробуйте этот финальный скрипт и посмотрите, как он работает. Он должен обрабатывать все строки за один раз и корректно ''' var descriptionColumn = 26; // Колонка с описанием function extractCadastreNumbers() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow = sheet.getLastRow(); var startRow = 2; Logger.log('Начало обработки с строки: ' + startRow); // Регулярное выражение для поиска кадастровых номеров var cadastrePattern = /\d{2}:\d{2}:\d+:\d+/g; // Получение данных из колонки с описанием за один раз var range = sheet.getRange(startRow, descriptionColumn, lastRow - startRow + 1, 1); var descriptions = range.getValues(); var cadastreNumbers = []; var outputData = []; // Извлечение кадастровых номеров descriptions.forEach((row, index) => { var text = row[0]; var matches = text.match(cadastrePattern); cadastreNumbers.push(matches || []); Logger.log('Строка ' + (startRow + index) + ': найдено ' + (matches ? matches.length : 0) + ' кадастровых номеров'); }); // Найдите максимальное количество кадастровых номеров в одной ячейке var maxCadastres = Math.max(...cadastreNumbers.map(arr => arr.length)); Logger.log('Максимальное количество кадастровых номеров в одной строке: ' + maxCadastres); // Подготовка данных для записи cadastreNumbers.forEach((matches) => { var row = new Array(maxCadastres).fill(''); matches.forEach((match, index) => { row[index] = match; }); outputData.push(row); }); // Заполнение новой таблицы кадастровыми номерами if (outputData.length > 0) { var outputRange = sheet.getRange(startRow, descriptionColumn + 1, outputData.length, maxCadastres); outputRange.setValues(outputData); Logger.log('Данные записаны в диапазон: ' + outputRange.getA1Notation()); } Logger.log('Обработка завершена. Все строки обработаны.'); }
Editor is loading...