Коллеги, Василий продолжает нас баловать решениями, он прислал очередной скрипт, слово автору.
У нас есть список документов в папке google диска, пусть это военные билеты или паспорта.
Каждый документ лежит в папке диска и имеет название в формате `Фамилия Имя Отчество`.
В Таблице у нас список фамилий и скрипт помогает сопоставить каждую фамилию из списка с файлом в папке, найдя его (файл) с помощью регулярного выражения
Таблица с примером (делайте копию)
Код отдельно:
function ссылки_ссылки() {
const idFolder = idFromUrl('https://drive.google.com/drive/u/0/folders/17uqPgg09Y3EaJJnkbutmzQfOZqIEMi0b'); // ID папки с файлами
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets()[0];
const range = sh.getRange(1, 1, sh.getLastRow(), 1);
let values = range.getValues();
const files = DriveApp.getFolderById(idFolder).getFiles(); // забираем все файлы из папки
var filesM = [];
while (files.hasNext()) { // создаём массив [Имя, Url] каждого файла
var file = files.next();
filesM = [...filesM, [file.getName(), file.getUrl()]];
};
values = values.map((x, i) => {
const fileUrl = i == 0 || !x[0] ? '' : filesM.filter(z => new RegExp(x[0]).test(z[0]))[0]?.[1] || 'не найдено';
return [x[0], fileUrl];
});
range.offset(0, 0, values.length, values[0].length).setValues(values);
};
function idFromUrl(url) { // функция для извлечения ID из URL
return url.match(/[-\w]{25,}/)[0];
};
📗 Чат @google_spreadsheets_chat
📕 Оглавление канала
🏄 Заказ работы у нас
