Прежде всего, я не программист, поэтому это может быть легко один для некоторых из вас ...В листе Google добавьте 1 к значению ячейки и сохраните результат как PDF-файл в Google Диске, добавьте 1 снова и сохраните PDF снова,
Я составляю Лист Google для оценки детей в начальной школе. Я сделал таблицу таким образом, что если вы вводите номер класса ученика в ячейке H3, оценки этого ученика появляются на листе. Все идет нормально.
Теперь, что я пытаюсь сделать, это написать сценарий, который добавляет 1 к значению ячейки H3, а затем сохраняет PDF-файл в Google Диске учителя.
На данный момент у меня есть «сценарий», который я скопировал и вставил из Интернета ... Я обнаружил, что мне нужно скрыть все листы, которые мне не нужны в PDF. (Вот что такое функция ShowOneSheet и ShowAllSheets).
Возможно, код очень неэффективен, я понятия не имею. :)
На данный момент у меня есть меню, в котором вы можете делать все вручную. (перейдите к следующему ученику, сохраните в pdf-диске, перейдите к следующему ученику, сохраните в pdf на диске, ...)
Я хочу, чтобы сценарий делал это столько раз, сколько есть ученики. Таким образом, учителя могут получить отчет для всех учащихся на своем Google диске всего одним щелчком мыши.
Я также не знаю, как создать папку/pdf с указанным именем. (на данный момент он сохраняет как папку, так и PDF как «неопределенные».)
Любая помощь будет очень признательна! Я манекен, но хочу учиться.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Reports')
.addItem('Show only grades sheet', 'showOneSheet')
.addItem('Go to next report', 'nextclassnr')
.addItem('Save this report in PDF in Drive', 'createPdf')
.addItem('Show all sheets', 'showAllSheets')
.addToUi();
}
function showOneSheet(SheetToShow) {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for(var i in sheets){
if (sheets[i].getName()==SheetToShow){
sheets[i].showSheet();
}
else {
sheets[i].hideSheet();
}
}
}
function nextclassnr() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[3];
//Set variables and add one to the "classnumber"
var classnrR= sheet.getRange("H3");
var classnr = classnrR.getValue();
var nextclassnr = 1 + classnr;
classnrR.setValue(nextclassnr);
}
//PDF in folder "undefined" named "undefined" :(
function createPdf(saveToFolder, fileName){
var ssa = SpreadsheetApp.getActiveSpreadsheet();
var pdf = ssa.getAs("application/pdf");
try {
var folder = DocsList.getFolder(saveToFolder);
}
//Create Folder if not exists
catch(error){
folder = DocsList.createFolder(saveToFolder);
}
var file = folder.createFile(pdf);
file.rename(fileName);
return file;
}
// make sheets visible
function showAllSheets() {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for(var i in sheets){
sheets[i].showSheet();
}
}
Привет, В Бельгии мы используем счеты с цифрами, чтобы дать оценки студентов ... (разные системы) Я заполнил лист Google с какая-то фиктивная информация, поэтому вы можете видеть, что я пытаюсь сделать здесь. Каждый студент получает «персонализированную» распечатку листа «Оценки». Итак, что я хочу сделать, так это то, что скрипт запускает «добавить 1 для изменения класса» И «сохранить PDF в Google Диске». Теперь вы уже много помогли мне. Думаю, я смогу справиться с этим самостоятельно. Я отправлю ссылку на лист и код, чтобы вы могли увидеть «конечный результат» моего маленького проекта или дать некоторые советы, если вы считаете, что это необходимо. Большое спасибо! –