рдЧреВрдЧрд▓ рдбреНрд░рд╛рдЗрд╡ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреАрдмреА рдмрдирд╛рдирд╛ред рднрд╛рдЧ 1

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ Google рдбреНрд░рд╛рдЗрд╡ (Google рдбреЙрдХреНрд╕) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рдХрдИ рд▓реЛрдЧ рд╢рд╛рдпрдж Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ , рдпрд╣ Google рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╣реИред рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Google рд╕реНрдкреНрд░реИрдбрд╢реАрдЯ (рдкрддреНрд░рдХ) рдФрд░ Google рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ GAS (Google Apps Script) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛ рдерд╛, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк Google Apps рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдкрдврд╝реЗрдВ

рдХрд╛рд░реНрдп: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди:

1. рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреЛрд▓реЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдвреВрдВрдвреЗрдВ;
2. рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдПрдБ;
3. рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рднрд░реЗрдВ;

рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ - рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕реЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :)ред

рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ:


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рд▓реЗрдВ:


рдЖрдИрдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж, рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдкрдиреА рдЖрдИрдбреА рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдУрдкрди (рдбреЙрдХреНрдпреВрдореЗрдВрдЯ, рдЯреЗрдмрд▓, рдлреЛрд▓реНрдбрд░) рдХреЗ рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓рд╛рдЗрди рдХреЛ рджреЗрдЦрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдиреАрдЪреЗ рдХреЛрдб рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ, рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдореЗрд░реА рдлреНрд░рд╛рдВрд╕реАрд╕реА рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред DoAction () рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ:
function doAction() {

var result = ReadBaseData( "31-05-2012" );
//If found data for this date...
if (result != null ) {
var doc = CreateNewDoc( "Act from " + result[0][0]);
FillTemplate(doc, result);
}
}
//inDoc - its a empty template, inData - data for filling template
function FillTemplate(inDoc, inData) {
//Getting count of files in folder
var NUM = DocsList.getFolderById(FOLDER_ID).getFiles().length;

//Replace masks (Don't work [NUM] or $NUM or something else)
inDoc.replaceText( "<NUM>" , NUM + 1);
inDoc.replaceText( "<DATE>" , Utilities.formatDate(inData[0][0], "GMT" , "dd.MM.yyyy" ));

//get first table in document
var table = curDoc.getTables()[0];
for (i=0; i< inData.length; i++) {
var row = table.appendTableRow();
row.appendTableCell(inData[i][1]);
row.appendTableCell(inData[i][2]);
}
curDoc.saveAndClose();

}
function CreateNewDoc(docName) {
//Making copy of blank file
var blankDoc = DocsList.getFileById(BLANK_DOC_ID).makeCopy(docName);
blankDoc.addToFolder(DocsList.getFolderById(FOLDER_ID));

//return working doc and table base
return curDoc = DocumentApp.openById(blankDoc.getId());
}
//get range and sort only for day from parameter
function ReadBaseData(inDate) {
var ssDoc = SpreadsheetApp.openById(BASE_TABLE_ID).getActiveSheet();

//get filled range
var data = ssDoc.getDataRange().getValues();

//create new array with data to inDate,
//for start from 1 because first row is text column headers
var filteredData = new Array( new Array() );
for (i=1; i< data.length; i++) {
data[i][0] = convertDate(data[i][0]);
if (data[i][0] == inDate && data[i][3] == 1) {
filteredData[i-1] = data[i];
}
}
return filteredData;
}


* This source code was highlighted with Source Code Highlighter .

рдлрд╛рдЗрдирд▓ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд┐рд▓рддрд╛ рд╣реИ

рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЪрд╛рд▓рд╛рди рдпрд╛ рдХреГрддреНрдпреЛрдВ рдХреЗ рд╕рд░рд▓ рдЬрд╛рд░реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдпрджрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдореИрдВ рдЬреАрдпреВрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In145416/


All Articles