Volond Apps
222 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
Channel created
Channel name was changed to «Volond Apps»
Путешествие в тысячу миль начинается с первого шага и этот путь доступен каждому. Главное - определиться к какой мечте вы стремитесь и какие цели вы преследуете.
https://t.me/google_sheets/450
Немного пошаманил с кодом перевел на Web App
Замечания и комментарии приветствуются!

function doGet(e) {
// var cnf=this[e.parameters.cnf]()
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sh = ss.getActiveSheet();
var output = ContentService.createTextOutput()
var request = '\'' + e.parameters.id + '\' in parents';
var data= rasparce(search(request))
data.unshift(['id', 'URL','Названия файла','Тип файла','Дата изменения','Дата последнего просмотра','URL папки'])
output.setContent(JSON.stringify(data));
output.setMimeType(ContentService.MimeType.JSON);
return output

}

Изменения в оригинале:

Добавил дополнительные поля
id,Тип , Дата последнего изменения и просмотра
function search(request, pageToken){
var optionalArgs = {
q: request,
maxResults: 1000,
orderBy: 'modifiedDate desc',
fields:
'items(id, title, parents(id), alternateLink, permissions, hasAugmentedPermissions,mimeType,modifiedDate,lastViewedByMeDate), nextPageToken'
};
//(type, id)
if (pageToken) {
optionalArgs.pageToken = pageToken;
}
var list = Drive.Files.list(optionalArgs);
var files = list.items;
if (list.nextPageToken) {
return files.concat(search(request, list.nextPageToken));
}
return files;
}

function rasparce(files){
var arr = []
for (var j in files) {
var file = files[j];
var lastView=file.lastViewedByMeDate?file.lastViewedByMeDate:""
arr.push([file.id,file.alternateLink, file.title, file.mimeType,file.modifiedDate,lastView,'https://drive.google.com/drive/folders/' + file.parents[0].id])
}
return arr
}

Тест doGet()

function TESTdoGET() {

var idFolder='Укажите id Вашей Папки'//
var queryString = "?id="+idFolder
var url = ScriptApp.getService().getUrl() + queryString;
//Ссылку можно вставить в браузер
Logger.log(url)//
var options =
{
"method" : "GET",
"followRedirects" : true,
// "muteHttpExceptions": true
};

var result = UrlFetchApp.fetch(url, options);

if (result.getResponseCode() == 200) {

var params = JSON.parse(result.getContentText());
//Вывод заголовков и 1 строки результата
Logger.log(params[0]);
Logger.log(params[1]);

}
}
В копилку #RegExp
Имееем URL вида
https://docs.google.com/spreadsheets/d/id/edit#gid=1196970840&range=D10
Получаем параметры(gid и range)
function getGitFromUrl(url) {return url.match(/[\?|\&|\#]([^=]+)\=([^&#]+)/g).map(function(el){var arr=el.replace(/[\#|\&]/g,"").split("="); return arr[1] });}

Создал памятку для переезда с Rhino на v8
Прямо в скрипте GAS

Справка Google
ECMAScript 6 equivalents in ES5

Внимание: модули ES6 пока не поддерживаются.
Но спасибо этой статье
можно обойти ограничения
Пример в скрипте
clasp clone 1AXWw8bubo07wSRf83he0gv0Q4DOuZbvMiHUKRqCtdUSRgWJpF1zy1qg8

Please note this document is very much a work in progress. Contributions are welcome.

Table of contents:

Arrow Functions
Block Scoping Functions
Template Literals
Computed Property Names
Destructuring Assignment
Default Parameters
Iterators and For-Of
Classes
Modules
Numeric Literals
Property Method Assignment
Object Initializer Shorthand
Rest Parameters
Spread Operator
Proxying a function object
Array-like object to array
About
Call object methods
Improved function detection
Multi-line strings
Не работающие !!!
Cвязки формул в Google Sheet
IMPORTRANGE() СРЗНАЧ()
IMPORTRANGE() СРЗНАЧА()
IMPORTRANGE() СРЗНАЧЕСЛИ()
IMPORTRANGE() СРЗНАЧЕСЛИМН()
IMPORTRANGE() СУММ()
IMPORTRANGE() СУММЕСЛИ(), СУММЕСЛИМН()
IMPORTRANGE() СЧЁТЕСЛИ(), СЧЁТЕСЛИМН()
IMPORTRANGE() СЧЁТЕСЛИ(), СЧЁТЕСЛИМН()
ARRAYFORMULA() БДСУММ()
ARRAYFORMULA() ДВССЫЛ()
ARRAYFORMULA() СМЕЩ()
ARRAYFORMULA() СРЗНАЧЕСЛИМН()
ARRAYFORMULA() СУММЕСЛИМН()
ARRAYFORMULA() ЯЧЕЙКА()
ARRAYFORMULA() FILTER()
ARRAYFORMULA() IFS()
ARRAYFORMULA() ISFORMULA()
ARRAYFORMULA() JOIN
ARRAYFORMULA() MAXIFS()
ARRAYFORMULA() MINIFS()
ARRAYFORMULA() QUERY
ARRAYFORMULA() SPARKLINE()
ARRAYFORMULA() ИНДЕКС()
ARRAYFORMULA() ISFORMULA()
ARRAYFORMULA() GOOGLETRANSLATE()
Автор подборки @akanat
#book