Извлечение кадастровых №
столбец 26 (Z) google таблицыuser_2065311
javascript
a year ago
3.8 kB
8
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...