Я беру блоб из электронной таблицы и создаю PDF. Очень простая вещь, за исключением того, что я, кажется, не возвращаю объект файла при создании файла, как подразумевают Технические Документы Google ?? var theBlob = newGSheet.getBlob (). getAs ('application / pdf'). setName ("myNewPDF.pdf") var newPDF = folderX.createFile (theBlob)
В соответствии с техническими документами Google , newPDF должен быть файловым объектом, который позволил бы мне сделать что-то вроде newPDF.getId (), чтобы я мог ссылаться на него позже. Вместо этого я, кажется, получаю только имя файла? Чего мне не хватает?
РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Вот ссылка на googlesheet wa faux form для сохранения в PDF и кнопка для запуска скрипта для создания pdf. Скрипт найден через инструменты> редактор скриптов. Нужно авторизоваться для просмотра.
function createPDF1() {
var ss = SpreadsheetApp.getActive()
var theBlob = ss.getBlob().getAs('application/pdf').setName("testingPDF.pdf")
var folderX = DriveApp.getFolderById("root")
var fileX = folderX.createFile(theBlob)
var fileXID = fileX.getId()
Logger.log(fileXID)
// this was returning the file name yesterday
// as if by magic, TODAY, IT SEEMS TO WORK (?!...)
}
Казалось бы, благодаря магическому действию, то, что вчера не сработало, когда я опубликовал это и потратил на это 30 минут, теперь работает. Так что, казалось бы, никаких проблем сейчас ...
EDIT2: чтобы закрыть этот вопрос ... когда вышеприведенный код не работал ... этот код ниже был ... который показал, что он определенно возвращает имя файла вместо этого. .. также обратите внимание, что это должно было быть записано в этой длинной форме 1) проверка hasNext 2) затем получение и 3) получение идентификатора для возврата идентификатора при любой попытке предположить, что он имел следующий или объединить .next (). getId() не работает ..
var hasNext = DriveApp.getFilesByName(fileXID).hasNext()
if (hasNext) {
var newPDF_fileX = DriveApp.getFilesByName(newPDF).next()
var newPDFID = newPDF_fileX.getId()
}