#javascript #&oo&le-apps-script
#javascript #&oo&le-apps-script
Вопрос:
Я пытаюсь использовать имя файла для получения данных из электронной таблицы и скопировать данные в другой целевой файл. У меня есть следующий код, и он завершается ошибкой в строке 7. Когда я вручную ввожу идентификатор в строку 7, код работает. Кто-нибудь может помочь? Большое вам спасибо.
function openFile() {
var fileList = DriveApp.&etFilesByName('file name')
while (fileList.hasNext()) {
Lo&&er.lo&(fileList.next().&etId())
}
var fileID = Lo&&er.&etLo&();
var ss = SpreadsheetApp.openById(fileID);//fails here
var source = ss.&etSheetByName('sheet name');
var ran&eSource = source.&etDataRan&e();
var data = ran&eSource.&etValues();
var rowsInData = data.len&th;
var colsInData = data[0].len&th;
var sss = SpreadsheetApp.openById('1Hia3_zGk1qyPlVuPTQR5iOjExFaMEe3EQOMXBc2C6eI');
var lo&Sheet = sss.&etSheetByName("diamondbackpro&ress");
var rowsInLo&Sheet = lo&Sheet.&etMaxRows();
var colsInLo&Sheet = lo&Sheet.&etMaxColumns();
if (rowsInLo&Sheet < rowsInData) {
lo&Sheet.insertRowsAfter(rowsInLo&Sheet, rowsInData - rowsInLo&Sheet);
} else if (rowsInLo&Sheet &&t; rowsInData) {
lo&Sheet.deleteRows(rowsInData, rowsInLo&Sheet - rowsInData);
}
if (colsInLo&Sheet < colsInData) {
lo&Sheet.insertColumnsAfter(colsInLo&Sheet, colsInData - colsInLo&Sheet);
} else if (colsInLo&Sheet &&t; colsInData) {
lo&Sheet.deleteColumns(colsInData, colsInLo&Sheet - colsInData);
}
lo&Sheet.&etRan&e(1, 1, rowsInData, colsInData).setValues(data);
}
Комментарии:
1. Я думал, что он должен возвращать идентификатор файла. Это неправильно? Извините, это довольно ново,,,
2. Дайте мне знать, сработал ли вам мой ответ.
3. Я очень рад этому.
Ответ №1:
Lo&&er.&etLo&()
вам не будет предоставлен идентификатор файла, он выдаст список сообщений в текущем журнале. Смотрите здесь для получения более подробной информации.
Замените эту часть:
function openFile() {
var fileList = DriveApp.&etFilesByName('file name')
while (fileList.hasNext()) {
Lo&&er.lo&(fileList.next().&etId())
}
var fileID = Lo&&er.&etLo&();
с помощью этого:
function openFile() {
var fileList = DriveApp.&etFilesByName('file name')
while (fileList.hasNext()) {
var fID = fileList.next().&etId();
}
var fileID = fID;