Мне нужно обновить общую таблицу. Информация для этой таблицы сначала собирается в файлы таблиц Excel, а затем загружается на диск Google каждый день. Я нашел код, который преобразует файлы .xls в файл электронной таблицы Google, мне нужно копировать данные из этого преобразованного файла и обновлять общий каждый день. Моя проблема сейчас заключается в том, что файл, который я буду использовать для обновления общей электронной таблицы, будет отличаться каждый день, поэтому как мне получить скрипт для получения нового идентификатора файла каждый день. Мне нужно, чтобы эти обновления делались автоматически каждый день.
Это код, который я нашел до сих пор, но не могу заставить его работать. Первая часть преобразует файл .xls в файл электронной таблицы Google, эта часть работает, но я не могу заставить работать функцию обновления общей таблицы, я не могу получить идентификатор созданного файла. Также было бы хорошо, если бы в код была добавлена функция для удаления файлов после того, как они были преобразованы, а общая таблица была обновлена вместе с ними.
function importXLS(){
var files = DriveApp.searchFiles('title contains ".xls"');
var destinationFolderId = "ID of folder with .xls file that is being converted each day";
var existingFileNames = getFilesInFolder(destinationFolderId);
while(files.hasNext()){
var xFile = files.next();
var name = xFile.getName();
try {
if (existingFileNames[name] && (name.indexOf('.xls')>-1)) {
var ID = xFile.getId();
var xBlob = xFile.getBlob();
var newFile = { title : name,
key : ID,
'parents':[{"id": destinationFolderId}]
}
file = Drive.Files.insert(newFile, xBlob, {
convert: true
});
}
} catch (error) {
console.error("Error with file " + name + ": " + error);
}
}
}
/**
* Get an object of all file names in the specified folder.
* @param {string} folderId
* @returns {Object} files - {filename: true}
*/
function getFilesInFolder(folderId) {
var folder = DriveApp.getFolderById(folderId);
var filesIterator = folder.getFiles();
var files = {};
while (filesIterator.hasNext()) {
var file = filesIterator.next();
files[file.getName()] = true;
}
return files;
}
function CopyContent() {
var ID = importXLS(ID);
var source = SpreadsheetApp.openById(importXLS(ID));//the source needs to be the new file i get eachday
var sheet = source.getSheets()[0];
var destination = SpreadsheetApp.openById("ID of shared table here");
sheet.copyTo(destination);
}