Могу ли я использовать IMPORTRANGE в папке Google Диска?

Этот код работает для меня, если я импортирую два листа:

={IMPORTRANGE("Sheet1Key","SheetName!A2:A500");IMPORTRANGE("Sheet2Key","SheetName!A2:A500")}

Однако у меня есть несколько листов, все в одной папке, все с данными на первом листе и все с данными в одних и тех же ячейках.

Можно ли как-то импортировать из папки или как-то автоматически добавить идентификаторы или имена всех файлов в этой папке?


person Eoin    schedule 28.06.2019    source источник
comment
это возможно только со сценарием. иначе не   -  person player0    schedule 28.06.2019
comment
Возможный дубликат Возможно ли сделать ImportRange в Google Apps Скрипт?   -  person AMolina    schedule 28.06.2019


Ответы (2)


Я не уверен, что вы подразумеваете под автоматическим импортом всех файлов в этой папке. Но что вы можете сделать, так это использовать следующий код, который я сделал некоторое время назад. (Вам нужно сделать это под scripts.google.com, и вам нужно запустить код) Единственное, что вам нужно изменить, это имя папки, где я написал «введите имя папки».

function listFolderContents() {
var foldername = 'type name of folder';
var folderlisting = 'URL listing for folder ' + foldername;

var folders = DriveApp.getFoldersByName(foldername)
var folder = folders.next();
var contents = folder.getFiles();

var ss = SpreadsheetApp.create(folderlisting);
var sheet = ss.getActiveSheet();
sheet.appendRow( ['name', 'link'] );

var file;
var name;
var link;
var row;
while(contents.hasNext()) {
file = contents.next();
name = file.getName();
link = file.getUrl();
sheet.appendRow( [name, link] );     
}  
};

Он создаст электронную таблицу Google под названием «Список URL-адресов папки (имя папки), расположенной внутри папки, для которой вы пытаетесь получить файлы. Электронная таблица будет содержать массив всех URL-адресов файлов. Должно быть относительно проще создать диапазон импорта с учетом URL-адресов. Возможно, вы сможете разобрать мой код и использовать его части, которые помогут вам в достижении вашей цели. Надеюсь это поможет.

person Sebastian    schedule 28.06.2019
comment
Добро пожаловать в стек, спасибо, это выглядит достаточно хорошо для начала. У меня уже есть лист, но я думаю, что я мог бы использовать два листа для этой цели. Ваше здоровье. - person Eoin; 05.07.2019
comment
В строке var имя_папки = 'введите имя папки'; Какой формат для ввода имени папки? Это URL-адрес или что-то вроде My Drive/Folder1/Folder2? Прошу прощения, если это глупый вопрос. - person Paul Bielaczyc; 11.12.2019
comment
Эй, извините, что не ответил раньше. Это имя папки, которое отображается на диске Google. Поэтому, если он отображается как Folder1, вы просто используете Folder1. В приведенном вами примере My Drive/Folder1/Folder2 будет путь к Folder2. Надеюсь, я разъяснил ваш вопрос - person Sebastian; 16.05.2020

Вам просто нужно использовать массив:

=query(arrayformula({importrange(sheet1!A1:Z100);importrange(sheet2!A1:Z100)}), "SELECT *",1)

Это предполагает, что все данные структурированы одинаково.

person user11980842    schedule 26.08.2019