-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathsheets2docs.gs
More file actions
33 lines (29 loc) · 1.13 KB
/
sheets2docs.gs
File metadata and controls
33 lines (29 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* Create a new document for every row in a spreadsheet. This code assumes that
* the data is in the first sheet (workbook) in the spreadsheet and has the
* columns "Title", "Content", and "Emails" in that order, with multiple email
* addresses separated by a comma.
*/
function createDocsFromSpreadsheet() {
// Open the spreadsheet and get the data.
const ss = SpreadsheetApp.openByUrl('ENTER SPREADSHEET URL HERE');
const sheet = ss.getSheets()[0];
/** @type {string[][]} */
const data = sheet.getDataRange().getValues();
// Remove any frozen rows from the data, since they contain headers.
data.splice(sheet.getFrozenRows());
// Create a document for each row.
data.forEach(function(row) {
const title = row[0];
const content = row[1];
const emailsStr = row[2];
// Split the emails into an array and remove extra whitespace.
const emails = emailsStr.split(',').map(function(email) {
return email.trim();
});
// Create the document, append the content, and share it out.
const doc = DocumentApp.create(title);
doc.getBody().appendParagraph(content);
doc.addEditors(emails);
});
}