Make & Send Kids Reports

In this post, we’re going to look how we can create kids reports from a Google Sheet and convert them into individual PDFs made from Google Docs, then email them to the parents. This could of course be adapted to send any types of reports.

Kids Reports - 54

The teachers will fill in the spreadsheet and as its a Google Sheet will be able to do it at the same time as each other, using drop-down menus to make it quick and easy to do. The code will convert this information into individual PDF reports, which will be stored on our Drive and then sent via email directly to the parents. The process is completely paperless and free!

Setting up the spreadsheet

In one sheet, I’ve set up the columns as below:

Kids Reports - 2

Kids Reports - 3

We have two classes with a few students in each. Then we have the areas we want to report to the parents. In the blue part, their language skills and knowledge; in the pink part their behaviour; their attendance, exam marks, and the recommendation for the following year. In the final column, we will add the links to the individual PDFs.

Create a second sheet and call it “Options”. This is where we’re going to store the options for some drop-down menus on the main sheet. First, let’s set up the drop-down menus for the language feedback.

Kids Reports - 4

Select the cells where you want to add the drop-down menus.

Kids Reports - 5

Right-click and select Data validation from the menu.

Kids Reports - 6

In the dialogue box that will appear, click on the box next to “List from a range”.

Kids Reports - 7

This will ask you for where that data is. Instead of typing in the box, open the Options sheet.

Kids Reports - 8

Then select the feedback options for language.

Kids Reports - 9

This will add the range in the dialogue box.

Kids Reports - 10

Click ok, then in the main dialogue, I usually select “Reject input”, so that teachers can’t add any other comments in this columns. Click Save.

Kids Reports - 11

As we can see, it’s now added the drop-down menus.

Kids Reports - 12

Clicking on one of the cells, will open the menu and the teacher can just select the comment they want to add.

Kids Reports - 13

Now do the same for the behaviour comments.

Kids Reports - 14

So, you should have a different set of feedback options this time.

Kids Reports - 17

Now in the exam marks, let’s prevent the teachers adding numbers that are not between 0 and 10. Here in Spain, the norm is to receive a mark out of ten, which sometimes our teachers don’t realise or forget and they add a percentage mark. Select the cells, then open the data validation dialogue as before.

Kids Reports - 18

This time select “Number” from the criteria and “between”. Then add 0 and 10 in the boxes. This time I’ve ticked the “Show validation help text”. This will show the message in the box, if they don’t write a number between 0 and 10.

Kids Reports - 19

Here’s the help text they would see.

Kids Reports - 20

Finally, as this is the end of the year, the parents will want to know, if their child can go to the next level, needs to repeat the year, or can jump a level. So, for each we will add the 3 options. As the options will depend on their current level, we’ll need to do this per level. So, first select the recommendation cells for class A1.

Kids Reports - 21

Open the data validation and select the 3 options next to Class A1. As you can see, the menu options don’t have to be in columns, but can be across rows too.

Kids Reports - 26

Kids Reports - 25

As we can see, it’s added the options available for that level. We then do the same for Class A2, and so on.

Kids Reports - 24

Now the teacher fills out the sheet, choosing the options from the menus we’ve created, which makes it really quick for them to fill out. They also add the attendance figures and exam results. I usually add some conditional formatting to the menus, as it makes it more visually clear who’s doing well or not. See my post on Conditional Formatting if you’re not sure what to do.

Kids Reports - 27

Kids Reports - 28

Report template

Now, we need a blank report template. Here, I’ve created one in a Google Doc using tables to organise the information. As we’ll see in the code later on, accessing tables is easy to do, and so we will be able to add our students’ data with ease.

Kids Reports - 29

Create a folder where you’re going to store the finished reports. Then get the URL of the folder and paste it into the Options Sheets in cell A10, and the URL of the report template into cell A12.

Kids Reports - 50

The code to make the PDF reports

Once the teachers have filled in the data, we can run the program to make the individual reports in PDF format. From the Google Sheet open the Script Editor from the Tools menu. Delete the default code in there. I’m going to assume you know the basics of Apps Script, but I will explain what each step is doing.

Kids Reports - 30

First, I want to add a menu where we can run our code from.

Line 1: Call the function onOpen() so that when the spreadsheet is opened, the menu will appear.

Line 2: To set up a menu we need to get the spreadsheet UI (user interface). We do that by using getUi().

Line 3: We then create the menu on the menu bar using createMenu() and in the brackets give it a name. This is the name of the menu on the menu bar. Note, no semi-colon at the end.

Line 4: Then we need to add an item to it, which will run the createReports function we’re going to write. So, first we use addItem(), then in the brackets we need to state the name of the menu item, and the function we want connected to it. So, here I’ve called it ‘Make pdfs’ and it will run the createReports function when clicked.

Lines 5-6: Finally, we need to add it to the UI. We do that by using addToUi(). Then we close the function with a curly bracket.

You’re likely to use this chunk of code for numerous programs, so I would save it as a script editor file in your Drive, so you can just copy and paste it in.

Kids Reports - 31

Line 8: Now, we write a new function called createReports.

First, we need to get some of the data from our active sheet. Make sure, when you run the code that the first page with the report information is open and not the Options page.

Line 10: Store the active sheet in the variable ss.

I’ve used getActiveSheet() here and not the sheet by name just because if you have lots of students, you may split them into different sheets, so you would open the sheet you wanted and then run the code for that set of students. However, if you have a smaller set of students, you may prefer to do it all on one sheet, and therefore, use the getSheetByName() method.

Line 11: Then let’s get all the data on our sheet and store it in the variable ssData. We do this by using getDataRange() then getValues(). Later on we will get the data we need from this variable, rather than get it from the sheet every time, which would slow down the program.

Line 12: Next, we need to know where our data ends, so we get the last row number, using getLastRow().

Line 13: The start row number will be row 2, let’s set up the variable rowNumber with 2. This is the counter we’re going to use to go down each row and get that particular student’s data.

Line 14: We will sometimes be using row numbers and sometimes the row number within an array, and as arrays numbers start at 0 not 1, we need a number that is 1 less than the rowNumber. We’ll store it in the variable rowNumbersA. I could have just written = 1, but if we ever change our sheet and the start row number changed, we would only have to change one variable.

Now, let’s get the report folder URL and the report template URL from the Options sheet.

Kids Reports - 50

Kids Reports - 32

Line 17: First, let’s get the Options sheet by name, using getSheetByName().

Line 18: Then, we get the URL which is in A10 (row 10, column 1).

Line 19: We’ve got the URL but what we need is the folder ID. We can extract that from the URL by removing the first part of the URL up until /folders/. Here, we get the URL stored in reportFolder and use the replace() method, to replace one thing with another. In the brackets, I’ve added the first part of the URL, which we want to remove, then after the comma, add two quote marks, to show that we’re replacing the text with nothing. I.e. We’re removing it.

Kids Reports - 33

Line 20: Similar to before, but this time we get the report template URL.

Line 21: File URLs are a little more complicated, as we need to remove the first part, like above and also the /edit part at the end. The best way to do this is to use a regular expression. This will look for a particular pattern in the URL and remove the parts we don’t need. First we use the match() method and then in the brackets add the regular expression. It looks strange, but just add what’s there, believe me it works!

Note, all the code written so far, is before the loop we’re about to make, as it only needs to be run once, so we don’t want it within the loop, as it would be run multiple times, slowing down the program. Now, we create a loop to move down the rows of data, and for every row, it will grab the data needed and create a report from it.

Kids Reports - 34

Line 24: We set up our for loop, starting at row number 2, continuing until the row number is equal to the last row (the last student on our sheet), and it will move down 1 row at a time.

Now, let’s get the data about the student, which we stored in ssData. Every line is similar, it’s just getting a different position each time which corresponds with the different columns on the sheet.

Kids Reports - 35

Line 27: We set up the variables and start off with the student’s name, which we’ll store in studentName. The variable ssData is an array of data, as it contains all the data from all the rows and all the columns on our sheet. So, to get the specific data we want we need to tell it, which ‘row’ it’s on and the ‘column’. Our references will have to be array references so will be one less than are on the sheet. The row we use the rowNumberA variable, so the first time we go around the loop, this will be 1 and this relates to row 2 on the sheet. The column is 0 as this relates to column 1 on the sheet.

At the end, add a comma, to connect it to the next variable, without having to repeatedly write var every time.

Continue doing the same for all the pieces of data we need and on the final line, close it by adding a semi-colon.

This chunk of code is optional, as we could put the ssData parts directly in the report part below, but using easy to understand variable names it helps us remember which piece of information is which, so we don’t mix any up.

Now, we need to make a copy of the blank template.

Kids Reports - 36

Line 46: First, we get our template file by its ID. Use the DriveApp Class and getFileById() and add the variable reportTemplateKey where we stored the ID in.

Line 47: Now, make a copy of it, by using makeCopy() of the variable reportTemplate we just created. In the brackets we state the name of the new file. Here, I’m going to call it “Informe-Class name-Student’s name”, so I state the text, then, as the class and student’s name will come from the data for that particular student, we add the variables class and studentName. So, we will have something like, “Informe-Class A1-Barney Pebble”.

In case you were wondering, I’ve just realised I left the first bit (“Informe”) in Spanish, yours would be ‘Report’. The code I’ve adapted this from, was for our reports, which are all in Spanish.

Line 48: Finally, we need to get the ID of the new file, so we can then work with it. Use getId() for this.

Now let’s get our new report and add the student’s data into it.

Kids Reports - 37

Line 51: To edit the document we need to ‘open’ it by using openById() and adding its ID in the brackets.

Line 52: To write something on a document, we first need to get its body. So, logically we use getBody() and store this in the variable body.

Now, we need to access the tables one by one and the rows and cells within each one. We then set the text in this cells using the variables we created in lines 27 to 44.

Kids Reports - 38

Line 55: First, we need to get the first table in the document. We get the body, then get the table using getTables() and state which table number we want. As with arrays, the first table will be table 0, so we add a 0 in square brackets.

Line 56: Now, we need to get the table row we need and the cell number on that row. We use getRow() to get the row, and getCell() to get surprise, surprise, the cell. So, for the student’s name we need the first row and the second cell in that row, so we state getRow(0) and getCell(1). Then we use setText() to state what text we want to add in the cell. In the brackets we add the studentName variable.

The rest of the lines are in a similar format, so for example, the class name is in row 2 (1) and cell 2 (1).

Kids Reports - 39

We then get the next table and repeat the same process.

Kids Reports - 40

Kids Reports - 41

Kids Reports - 42

With the exam marks, I want to add the number to one decimal place and add some text to show it’s out of 10.

Lines 79-80: In the brackets for setText we state the variable written and add the toFixed() method and as we want 1 decimal place, we add 1 in the brackets. Then to show it’s out of 10,  we add a plus and the text ” /10″.

Kids Reports - 43

Line 84: As we ‘opened’ the report to edit it, save and close it to save all the changes. We get the new file’s ID in openReport and use the saveAndClose() method.

Now, let’s convert this file into a PDF.

Kids Reports - 55

Line 87: Get the new file by its ID and convert it to a PDF by using getAs() and in the brackets ‘application/pdf‘. Store that in pdf.

Line 88: Then, we need to give the PDF a name. Here, I just want it to be the same as the Google Doc. So, we use setName() and in the brackets, we get the name of the Google Doc using getName() and add the .pdf extension.

Line 89: Now, we create the new PDF using the DriveApp Class and createFile() and in the brackets we pass the pdf variable.

Line 90: Finally, get the ID of this new PDF, which we will use to add its URL to the sheet and in the emails.

This has made a Google Doc and a PDF in our My Drive, so as we want the PDF in our reports folder we need to move it there. Unfortunately, there isn’t a move method, so we’ll have to add a copy and then remove the original.

Kids Reports - 56

Line 93: Get the report folder by getting its ID from the reportFolderKey variable we created in line 19.

Line 94: Add a copy of the pdf to the report folder by getting the folder ID, then using addFile() and in the brackets adding the report PDF file.

Line 95: We then remove the original PDF file from My Drive. With My Drive, we just use DriveApp then the removeFile() method then state the file we want to remove.

Line 96: Finally, we want to remove the original Google doc on our My Drive. Removing a Google document is a bit different from removing a PDF. Here, we get the file ID using getFileById() and then use setTrashed() and state true in the brackets. This will remove it to the trash.

Now, let’s add the link to the new PDF in our report folder on our sheet, so we can access it directly from the Sheet and so that we can add it to the email to the parents.

Kids Reports - 57

Line 99: We get the current row using rowNumber and get column 20(T) the PDF URL column.

Line 100: Then, we set the formula in that cell to show a hyperlink to the PDF report. We do this by using setFormula() then adding our formula. The text parts need to be between quotes and variables without. Pay close attention to the use of quote marks here.

Note, it is possible to get the file’s URL and add that directly here, but it tends to be a bit longer, as it contains unnecessary information at the end of it, so I prefer to do it this way.

Kids Reports - 58

Line 102: We’re at the end of our loop, so we need to increase our array row number counter by one, so we state the variable rowNumberA and add two pluses.

Line 103: Close the loop with a curly bracket.

Kids Reports - 59

I always like to display a message to the user, to show the program has finished. So, here, we’ll add a toast message, which will pop up from the bottom of the screen telling us the reports have been made.

Line 104: Get the active spreadsheet and use the toast() method. Then state the message, title, and how many seconds you want the message displayed.

Line 105: Close the function with a curly bracket.

Making the reports

Now, we’re ready to make the reports. Refresh the page, so that the Reports menu appears. Then click Reports>Make pdfs to run the program. The first time you run it, it will ask for authorisation, click the review and allow buttons.

Kids Reports - 60

As we can see on the sheet, it has added the links to the PDFs for each student.

Kids Reports - 51

In our reports folder, it has created a PDF report for all our students.

Kids Reports - 52

If we open one of the reports, we can see it has been populated with that student’s information.

Kids Reports - 53

It takes about 50 seconds to create all the reports. As there is a runtime limit of 6 minutes, normally you can only make about 50 reports this way in one go. To make more, either store the students on different sheets, or what we do is tweak the code, to ask for a starting row number and finishing row number, so the reports are made in batches. This also means we can make the reports as soon as a particular class’s data is ready.

Emailing the reports to the parents

The final part will be to send the reports to the parents. We could include this code within the one above, but as we don’t want our program running too long, I’ve set it up so it runs separately.

First, let’s update the onOpen() function, so that an “Email reports” option appears in the menu.

Kids Reports - 72

Here, I’ve just added line 5. When we open the report spreadsheet again, we will see both menu options.

Kids Reports - 71

We’re going to send the email below:

Kids Reports - 70

It contains our school’s logo (a fictitious one), it’s personalized by including the student’s name in the email title and in the main text, and it contains a link to the report PDF.

So, how do we do this?

In a new script file (from File>New) write the following code.

Kids Reports - 62

Line 1: Set up a new function called sendEmails.

Line 2: Get the active sheet and store it in sheet.

Line 3-4: Get the last row and column, for later use.

Kids Reports - 63

As we’re going to add the school logo to make it more professional looking, we need to get the image, which is stored on our Drive.

Line 7: We get the image’s ID (the random numbers and letters part in the URL) and use getBlob(). The blob will contain the data of the image.

Kids Reports - 64b

Now we need to set up a loop to go down the list of students.

Line 10: Set up a for loop, starting on row 2, and which will stop when it gets to the last row and sends the last student’s report.

Kids Reports - 65

Now, we need to get the student’s name, email and pdf link.

Line 13: First, we get the data on the latest row and store it in data.

Lines 14-16: Then, let’s store the student’s name, email, and pdf link in separate variable ready to use in the email. For example, the student’s name is in the first column and so we get it from position 0 in the data array.

Now, we need to set up our message and store it in the variable message.

Kids Reports - 66

Line 19: First, let’s start with the school logo. Here, we’re using a bit of HTML to add the image (using the img tag) and we’ll state the id as logo. I’ve also controlled the height and width here. Pay attention to the quote marks.

Now, let’s add the rest of the message.

Kids Reports - 67

Lines 21-26: Each line is adding to the message variable using +=. To keep it simple, each line will be a separate paragraph (using the < p > tags). We open the < p > tag add the text we want and then close it using < /p >. Text needs to be within quote marks and variables like name, need to be without but are connected with the plus marks.

Kids Reports - 68 (1)

Finally, we need to send the email. This contains 3 main parts: email you’re sending to, email title, and email message.

Line 29: We use the MailApp and sendEmail() to send emails.

Line 30: We use emailTo to state the current email address we want to send to. Then in the email title I want to call it “Report-and the student’s name”, so the parents can see it’s a message about their child. The message part we’ll just add 2 double quote marks, as the next lines will add the details of the message. End the line with a comma.

Line 31: In curly brackets we’ll add the options we want. First, add the inline image, using inlineImages: then within another set of curly brackets, state the id logo: and the variable image (where the image blob is stored).

Line 32: Then we also need to add the body, which is a HTML body (htmlBody:) and the message variable, which contains the message we wrote above.

Lines 33-34: Close the loop and then close the function.

In seconds, this will send the personalised emails to all the parents.

Kids Reports - 69

Kids Reports - 70

We introduced a system similar to the one I’ve described above, which replaced an antiquated card report system and its made the whole process so much easier for everyone involved, whilst providing the necessary information to the parents in a more modern way.

One limitation with this system is that you can only send 100 emails a day, so if you have more students and want to send all the emails in 1 day, you will need to use a Google Sheets add-on like YAMM and pay for more emails (e.g. up to 400 in a day), or send the emails from different email accounts, not ideal but a workaround.

Here’s a copy of the spreadsheet with the code and here’s the report template.

You can find the code here at GitHub.

eBooks available on Drive, Forms, Sheets, Docs, Slides, and Sheet Functions:

Baz Roberts (Google+Flipboard / Twitter)

Google Docs – Extra useful tools

To finish off my current set of posts on Google Docs, here’s a collection of small but useful tools in Docs, which I haven’t covered so far, but I think can make life that little bit easier. The majority are related to the document as a whole and allow you to do things without having to go back to Google Drive. We’ll look at:

  • Opening files from within Docs
  • Creating new files from within Docs
  • Doc templates
  • Make a copy of the current document
  • Organise (moving from within Docs)
  • Starring
  • Full screen
  • Find and replace

Opening files from within Docs

You can open other Docs by going to the “File” menu and selecting “Open”.

Docs19 - 1

This will take to the ‘Open a file’ dialogue box, where you can search for your Doc. The one advantage here is that it will only look for Docs.

Docs19 - 2

Creating new files from within Docs

To create a new Doc, Sheet, Slide, Form, or Drawing, from within Docs, go to the “File” menu, select “New”, then select the type of file you want.

Docs19 - 3

Doc templates

From the same menu, Docs also has a range of templates you can use. Select “From template” and you will be presented with templates for CVs, letters, educational documents (essays, reports, lesson plans, etc), work (meeting notes, project proposals, etc), brochures, newsletters.

Docs19 - 4Docs19 - 5

Docs19 - 6

Docs19 - 7

They look professional and can be useful as a quick way to start writing. I’ve got to admit I’ve never used templates, as I always find I end up changing most things on them anyway, which defeats the point a bit!

Make a copy of the current document

To duplicate the current document, go to the “File” menu and select “Make a copy”.

Docs19 - 8

The ‘Copy document’ dialogue box will appear. You can rename the new file, plus you can decide if the new document will be shared with the same people as the existing one or not. Click OK and the new document will open in a new tab. The new file itself will be in your My Drive root folder, so you may have to move it to a different folder afterwards.

Docs19 - 9

Organise (moving from within Docs)

You can move the current document to a new folder, by clicking on the folder icon next to the file name.

Docs19 - 14

This will show you where the document is and give you the option of moving it to a different folder. Click on “Move this item” then navigate to the folder you want.

Docs19 - 11


“Starring” a file, puts it in your “Starred” filter to allow you to find the file quickly. See my Drive post on starring files and folders. To “star” the current document, click on the star next to the filename.

Docs19 - 14

Full screen

Sometimes you want some more space on your screen, for example, if you’re using a laptop, or you may just want to present your document and get rid of the toolbar. Go to the “View” menu and select “Full screen”.

Docs19 - 15

Docs19 - 16

Find and replace

This tool is great especially if you have a longer document and you want to find a specific word or phrase almost immediately. Go to the “Edit” menu and select “Find and replace”.

Docs19 - 12

Here you can either just look for a word or phrase and Docs will take you right to it, or you can replace it with another word or phrase. This is useful for making corrections on mass in your document. You also have the option of finding a word with the exact same case or ignoring whether it starts with a capital letter, and finding all examples of that word or phrase.

When you find something, Docs will tell you how many examples there are and which number you are currently on, in the Find box. To move to the next one, click on the Next arrow, or to go back click on the Prev arrow.

Finally, you have the option of replacing a word one by one (in case you want to check before replacing it) or replacing all of them in one hit.

Docs19 - 13

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Research and Define

The “Research” tool is mainly aimed at those writing academic papers, essays, etc, but it can be useful for anyone. It allows you to search for things on Google without having to leave your document. Plus, it allows you to add that information directly into it. You can either do a general search or you can look for the following:

  • Images
  • Citations
  • Quotes by famous people
  • Dictionary terms
  • Your personal documents
  • Tables

We’ll also look at the “Define” tool.

To open up “research”, go to the “tools” menu and select “Research”.

Docs18 - 1

This opens the side toolbar where Research lives. There’s a search bar at the top. Click on it and you will see the various options you have.

Docs18 - 2

Let’s look at them one by one. First, the general search. This searches both on Google and also your My Drive. The My Drive results are under “Personal results” and the general search results are under “Web results”.

Docs18 - 3

If you hover over one of the results, you will see 3 options appear.

Docs18 - 4

“Preview” allows you to see what the content of the webpage. The preview page opens next to the side toolbar.

Docs18 - 6

If I select a word or phrase in the text I can add a link to it or a citation.

Docs18 - 5

Here I’ve clicked on “Insert link”.

Docs18 - 7

Here I’ve clicked on “Cite”. This adds a citation reference number.

Docs18 - 8

It also adds a footnote (at the bottom of the page) detailing that citation and includes a link to the webpage. All with just a click of the button.

Docs18 - 9

Image search

The “image” search unsurprisingly, delivers images based on the search term. Just drag the image you want into the document.

Docs18 - 10


The “scholar” option allows you to search research papers. Again you can add them to your document as detailed above.

Docs18 - 11


The “Personal” option searches your My Drive. It has the same 3 options as above, and the insert link and cite options adds a link to the file.

Docs18 - 12


The “Tables” option will look for tables with your search term in it.

Docs18 - 14


The “Quotes” option allows you to search for quotes by famous people. Not surprisingly, I didn’t find any with the search term “Google Docs”! But here’s a couple from the ‘quote master’ himself.

Docs18 - 15


Finally, there is also a powerful dictionary.

Docs18 - 16


The dictionary is used when you ask Docs to “define” a word.

To define something, highlight the word or phrase and go to the “Tools” menu and select “Define”. This will provide you with some information about the word as above.

Docs18 - 17

There is a shortcut to both the Research menu and Define menu. Highlight the word or phrase you want and right-click. Then from the menu either select “Research…” or “Define…”.

Docs18 - 18

“Define” doesn’t work in another language, for example, if your account is in English and you want to define a Spanish word. However, you can use the Research tool to access information about the word or phrase.

Here I’ve highlighted “hablar”, right-clicked and selected “Research ‘hablar'”.

Docs18 - 19

As you can see, it provides me information about the verb, its conjugation, etc.

Docs18 - 20

Note, in the screenshot above, there was a different option at the bottom, i.e. “Export”.

As that particular result was in a table format, I have the option to do export it in a couple of ways. Click on that result. This takes me to the Google Tables page. The main thing to notice, is that I can export the verb conjugation table to either Google Sheets or to FusionTables. This can be a nice, quick way to get table data.

Docs18 - 21

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Copy & paste multiple texts & images with Web clipboard

We should all know copy and paste by now. When we copy something it goes into a virtual clipboard, ready for us to call on it by pasting it into a document. But what happens if we’ve got lots of things we want to copy and paste, and in particular, when we want to copy and paste between documents? We end up opening one document, copying, opening the other document, pasting, and back to the first document, and so on… A bit tedious to say the least.

Well fortunately, Google Docs has an alternative clipboard called web clipboard. This allows you to copy various pieces of texts and images from one document and then go to the other document and paste them all separately. It can even allow you to copy on one computer and paste on another!

Copying to the web clipboard

As an example, I’m going to copy three separate chapter titles, which are in the same document but on different pages.

First, I select the first title and go to the “Edit” menu, select “Web clipboard” then “Copy selection to web clipboard”.

Docs17 - 2

 Docs17 - 1

Then I select the second title, and do the same as above. Notice, that the previous one appears in the final menu.

Docs17 - 3

Docs17 - 4

I copy the third title in the same way, here you can see the previous two titles in the menu.

Docs17 - 5

Then I go to the document I want to paste the titles in. I go to “Web clipboard” as before.

Docs17 - 6

Then I click on the first title, this then gives me two options, “Paste as rich text” or “Paste as HTML”. Probably most of the time you will want to pick the “rich text” one which contains the formatting.

Docs17 - 7

Here it is in the new document:

Docs17 - 8

I repeat the same for the other two titles:

Docs17 - 9

It’s far more convenient and quicker to do and allows you to work with multiple texts or images and even between computers.


To finish off, let’s copy an image.

As you can see below, the image is stored in a similar way and you have the same paste options. If you select the image, here called A “”, you will see that it gives you a preview of the image  below, so you know which one it is.

Docs17 - 10

To clear the web clipboard, select “Clear all items” in the web clipboard menu.

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

  • Join the Google Slides Tips Google Space (for now: personal accounts only)

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Revision History (all is not lost!)

One of my favourite things about the Google Apps suite is that it remembers every change that you have ever done to a file. That’s one of the beauties of not having to manually save the file. You can go back to earlier revisions of a file, not just what you’ve made but that anyone has made, plus you can see who made a particular revision.

To do this in Google Docs, first go to the revision link at the top of the screen, next to the menus. Here it will tell you when the last revision was made and who made it, if it wasn’t you.

Docs16 - 1

Clicking on the link, opens up the revision history window. On the right are the list of dates and times, when significant revisions were made.

Docs16 - 2

Different people will be in different colours.

Docs16 - 8

To look at a previous revision, click on an earlier date and you will see the parts that were changed highlighted in green. If you want to restore that revision, just click on “Restore this revision”.

Docs16 - 3

If there are more than one revisions at that point, you can click up and down the revision by clicking on the arrows in the top right-hand corner, next to where it says, for example, “Edit 1 of 2”.

Docs16 - 4

You also have the option of printing the previous revision of the document, without restoring it. Just click on the Print icon.

Docs16 - 5

You can look at more detailed revisions, by clicking on “Show more detailed revisions” in the bottom right of the page.

Docs16 - 7

Here you can see every single revision.

Docs16 - 6

Note, that if you make a copy of a document, you will lose the revision history in that new document.

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

  • Join the Google Slides Tips Google Space (for now: personal accounts only)

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Voice typing & voice control

More and more we’re seeing devices controlled by your voice and Google Docs is no exception. It gives you the opportunity to input text via your voice instead of via the keyboard. It also allows you to control, what would normally be controlled by the mouse, by your voice. For example, you can change the format of your text, edit the document, select certain areas, all with your voice.

It is of course a wonderful tool for those who can’t use a keyboard and mouse, and offers a free solution to what would normally require dedicated software. As an experiment, I’ve ‘voice typed’ the first half of this post. As you will see later on, it wasn’t perfect and does take a little while getting used to, plus you end up having to edit the document, but the question is, is this what we’ll all be doing in the future?

Voice typing

Note, before starting you will need to have some kind of microphone to do this. If you are using a laptop with a built-in webcam then probably you don’t need anything else, but if you’re using a desktop computer, then you might need a microphone or a headset to use this. Basically, you need something to record your voice.

Secondly, at present this only works in the Google Chrome browser.

To start, you will need to turn voice typing on. Go to the “Tools” menu and select “Voice typing…”.

Docs15 - 1

This opens up a box with a microphone symbol.

Docs15 - 2

Prior to using it, check it’s set to your variation of your language, or at least something close to it. If you’re particular area isn’t listed, you may need to try different ones to see which is best for you.

Docs15 - 3

To start recording and voice typing, just click on the microphone symbol. It’ll turn red to show you it’s recording.

Docs15 - 3a

Then just start talking.

Here’s the first paragraph. As you can see, it’s not perfect, although I was speaking fairly naturally into the computer, so it’s down a pretty good job, considering I haven’t touched the keyboard. I’m just not sure how Rambo got in there!?

More and more will seeing devices controlled by your voice and Google Docs is no exception. It gives you the opportunity to input text by voice instead of by the keyboard. It also allows you to control what would normally be controlled by the mouse, by your voice. free Rambo you can change the format of your text, headed the document, select certain areas, all with your voice.

To add punctuation, you just say the name of the punctuation mark. These are the ones it accepts at the moment:

full stop (period), comma, exclamation mark, question mark

Plus it allows you to decide when to create a new line or paragraph:

new line, new paragraph

At the time of writing, these punctuation commands only work in English, French, German, Italian, Russian, and Spanish.

Correcting your text

Once you’ve voice-typed your text, you can either go back in and manually correct things with your mouse or you can do it with voice commands. Note, at the time of writing, these commands are only available in English and your account and document language must be in English for it to work.

Selecting text

Say “select” + one of the commands below. For example, “select last word”.

Docs15 - 8Docs15 - 9

Most of options above are pretty easy to remember and after a bit of practice you realise that most make logical sense.

To correct a word, for example, say “select last word” then say the correct word.

Formatting your document

You can also format your document, for example, we can align the text. Note, it allows different ways to say the options, for example, “align center” or “center align”.

Docs15 - 10

I’ve included most of the options below, but there is a help menu in Docs that will give you all the options. Click on the question mark in the corner of the voice typing box, or with voice typing on, just say “voice typing help”.

Docs15 - 24

This will open up all the options. As you can see, there are lots to choose from and can do the majority of tasks with just using your voice. Have fun practising!

Docs15 - 11

Docs15 - 12

Docs15 - 13

Docs15 - 14

Docs15 - 15

Docs15 - 16

Docs15 - 17

Docs15 - 18

Docs15 - 19

Docs15 - 20

Docs15 - 22

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

  • Join the Google Slides Tips Google Space (for now: personal accounts only)

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Adding special characters

Apart from the usual fonts and letters we sometimes want to add very specific characters, e.g. arrows, Greek letters, emoji, etc. Docs provides a wide range of these and they are simple to insert into your document. In addition to this, Docs also provides a way to simply add mathematical equations.

Inserting special characters

Go to the “Insert” menu and select “Special characters”.

Docs14 - 1

The Insert special characters dialogue box will open. On the left you have the possible characters. At the top you have menus to access more characters. On the right you can either search for a character by name or even roughly draw it!

Docs14 - 2

Let’s start by adding an arrow from the initial list of characters on the left. To do this all you need to do is, click on the character. It will automatically add the character to your document. Click twice, and it’ll add the character twice.

Docs14 - 9

Once you’ve added one character, the top menu changes, and the “Categories” menu appears on the left.

Docs14 - 3

Adding recently used characters

Click on the “Categories” menu and you’ll see that you have the option of filtering by the characters you’ve recently used. Click on “Recent characters”.

Docs14 - 4

And here’s the arrow we inserted earlier. It’s a great way to insert characters if you’re adding the same ones again.

Docs14 - 5

Choosing different characters

There are hundreds of characters to choose from. Click on the “Arrows” menu and you will see that Arrows is just one option in the “Symbol” menu. We can add Braille, game pieces, emoticons, etc. Just click on a category and the possible characters will change.

Docs14 - 6

We can also change the main menu and not just look for symbols, but other characters such as, emoji, and other scripts.

Docs14 - 7

For example, let’s choose the Latin script.

Docs14 - 10

Here we can see the Latin alphabet, but not just the English one, but it includes the letters in other languages too. This is useful, for adding letters with accents if your keyboard doesn’t have a shortcut on it.

Plus, this includes further options, such as, the phonetic symbols (letters that represent sounds in a language), which as I work in teaching English as a Foreign Language, is very useful as it allows me to write out the phonetics of the words to help my students understand the pronunciation of a word. Clicking on Phonetics (IPA) brings up the phonetics, plus other symbols related to this field.

Docs14 - 11

Docs14 - 12

Finding special characters

As you can see, there are a lot of options here, and sometimes it can be hard to look through the various menus and pages of characters, and find what you’re looking for. Fortunately, there are a couple of ways to do this.

First, we can draw the character we want. In the box on the right, draw with your mouse, roughly the symbol you’re looking for. Here I was looking for the greek letter Theta. In the search results on the left, I can see that it found it, plus it found other possibilities that look similar to what I drew, including emoji like the crystal ball!

Docs14 - 8

Secondly, there is a search box where I can write in a keyword or the specific code of the character. Here I’ve typed “U+03B8” and it finds that specific character. How did I get that code? The first time I found it, when I hovered over the character, it shows the character in more detail, the name, and finally the character code.

Docs14 - 13

Docs14 - 14

Personally, if I don’t know where the character is, I use the drawing to find it, as your drawing skills don’t need to be as good as one of the great artists!

Adding mathematical equations

Docs has a dedicated way to add mathematical equations, so you don’t have to use the special characters menu.

To open the equation toolbar, go to the “insert” menu and select “Equation”.

Docs14 - 15

Below the regular toolbar, you’ll see the equation one.

Docs14 - 16

To insert an equation, click on “New equation”. This inserts a little box in your document. The equation will go inside that box.

Docs14 - 17   Docs14 - 18

Next to the “New equation” button, there are drop-down menus which contain the symbols you need.

Docs14 - 20 Docs14 - 21 Docs14 - 22 Docs14 - 24

The one below is a little different as this allows you to place the information in your equation, for example, the first one (a/b) allows you to show something divided by something. You insert this format, then type in the equation you want.

Docs14 - 23

Using this I created the one below fairly quickly, which (I believe) is the equation for standard normal distribution. Any mathematicians out there, please accept my apologies if I’m wrong! But as this isn’t a maths lesson, the point is that you can create quite complicated equations within Docs.

Docs14 - 19

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Translating a document

Many people work in different languages and it’s useful to be able to translate texts quickly and also to be able to work in another language if you speak more than one. Here we’ll look at a quick way to translate a document and how to work in another language even though your account may be in English.

Translating a document

Google Translate is pretty famous and it’s incorporated into Google Docs. It’s very quick to roughly translate a whole document and has about 100 languages (to be honest I didn’t count-but there are a lot!).

Go to the “Tools” menu and select “Translate document”.

Docs13 - 2

The Translate document dialogue box will open, asking you which language you want to translate into. Click on “Choose a language” and select one from the extensive range.

Docs13 - 3 Docs13 - 4

This will create a new translated document in your My Drive, thus, not touching the original. It’ll be named “Translated copy of + original filename”. Here I’ve translated one from English to Spanish.

Docs13 - 5

For those, who can speak Spanish fairly well, you’ll notice that the translation isn’t perfect. Just to show the point, here’s the Spanish text, translated back into English. I’ve highlighted the differences from the original. The yellow ones are differences but have a similar meaning.

Docs13 - 6

Google Translate is a wonderful tool and gets about 80-90% of the text right, but it’s a long way off translating something as it was intended. So, be careful how you use this. That said, it can help you understand a text if you don’t speak the language and even if you do, it can give you a head start in translating it.

Using a different language

If you want to write in a different language then go to the “File” menu and select “Language”.

Docs13 - 1

Then select the language you want. The main benefit of this is that the spellchecker will change to the language you’ve chosen, so you can correct any mistakes in that language. It doesn’t change the menus and the language you set for your account.

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

  • Join the Google Slides Tips Google Space (for now: personal accounts only)

Baz Roberts (Flipboard / Twitter / Google+)

Google Docs – Adding comments & suggesting

One of the great things about Google Docs is the ability to work on a document collaboratively. To aid that, collaborators can leave comments on the document, for others to action, either by just responding to the comment and by changing something on the document. Docs also allows you to make suggestions, so changes can be seen without removing the original text, etc. So, here we’ll look at two main areas:

  • Comments
    • Making
    • Editing
    • Deleting
    • Resolving
    • Responding
  • Notifications
  • Document modes: Editing, Suggesting, and Viewing


Leaving a comment

There are a couple of ways to leave a comment on your document.

Firstly, click on a line of text then go to the side of the page and you should see a little comment bubble.

Docs12 - 11

This will open a comment box for you to write in your comment.

Docs12 - 13

Then click “Comment”.

Docs12 - 14

This will leave a comment like the one below. Apart from the message, it also tells you who left the comment and when.

Docs12 - 15

Alternatively, you can click on “Comments” in the top right-hand corner of the page. Then click “Comment”.

Docs12 - 12

Editing a comment

To edit a comment, click on the 3 dots in the comment box. Then click “Edit”.

Docs12 - 16

Deleting a comment

To delete a comment without advising anyone, click on the comment box and the 3 dots. Then click “Delete”.

Docs12 - 16

Resolving a comment

If the comment has been actioned and no longer is necessary, you can get rid of it by clicking on “Resolve” in the comment box. This will send an email to the collaborators, stating that it is resolved.

Docs12 - 15

Responding to a comment

To reply to a comment, just click on the reply box and press “Reply”. This will be added underneath the comment.

Docs12 - 26 (1)Docs12 - 27 (1)

Comment notifications

When comments are added, edited or resolved you receive an email with the information. By default, you’ll receive emails from comments left by anyone. You can change this to only receive information on the comments you created or you can choose to turn this function off.

Click on “Comments” in the top right of the screen and click on “Notifications”.

Docs12 - 9

A menu will appear with the 3 options, All, Only yours, or None. Choose the one you want.

Docs12 - 10

Document modes: Editing, suggesting, viewing

By default, the document is in “Editing” mode, which means you can edit the document, but there are two other modes you can select. They are “suggesting” and “viewing”.


First, click on “Suggesting”. This mode allows you to edit the document but leaves a record of what has changed. E.g. if you delete a word, instead of deleting it, it marks it in a colour and strikes through the word, as if it has been crossed out.

This is useful if you are working on a document together with someone or a team and you want to show what you’ve changed.

Click on “Editing” and you will be presented with the 3 mode options.

Docs12 - 17

Click on “Suggesting”.

Docs12 - 18

If you delete a word, it will mark it with a line through it to show that you want to delete it. Plus, there are lines with little arrows above and below it to show where it starts and ends.

Docs12 - 19

On the side, similar to normal comments, a comment will appear detailing what you have deleted. Someone else reviewing the change can either accept or reject the suggestion, by clicking on the tick and the cross. Clicking on the tick will make the suggested change, e.g. delete the word, and clicking the cross will remove the suggestion and return the original text.

Docs12 - 20

It’s similar for added text. The added text is highlighted with the lines and arrows and a comment appears, this time saying what has been added.

Docs12 - 21Docs12 - 22

It also highlights formatting changes. For example, let’s change a word to bold.

Docs12 - 24Docs12 - 25


Sometimes you want to show the document but without the chance of editing it. From the same menu as before, click on “Viewing”.

Docs12 - 23

As you can see, all the edit options in the toolbar are not available now.

eBooks available on Drive, Forms, Sheets, Docs, Slides, and Sheet Functions:

Baz Roberts (Google+Flipboard / Twitter)

Google Docs – Sharing, emailing & downloading

Google Docs gives you a variety ways you can share your document. Here we’ll look at:

  • Downloading a document
  • Emailing a document
    • Emailing to collaborators
    • Emailing as an attachment
  • Sharing a document

Downloading a document

You can download a ‘physical’ copy to your computer in a variety of formats. To do so, go to the “file” menu and select “Download as”. Then select one of the options on the right.

Docs12 - 1

You can download it as a Microsoft Word document (.docx),an Open Office document (.ods), a Rich Text Format (.rtf) file,a PDF,as plain text (.txt), a zipped HTML file (.html), or as an EPUB document (used for ebooks).

Emailing a document

There are two ways to email the document.

1) Email collaborators – Sends a link to the document to those it’s already shared with

2) Email as attachment – Sends a ‘physical’ attachment in an email (in .docx,  or .pdf format)

Email collaborators

Go to the “File” menu then select “Email collaborators”.

Docs12 - 2

Clicking on this, will open the Send message box. Within it, you’ll be able to send an email to those who the document is shared with. On the left is the email and on the right are the possible recipients. By default, everyone is ticked and will receive it, just untick those you don’t want to send it to. If you have a long list but only want to send it to a few people, then it’s quicker to click “none”, then tick those you want to send it to. Then press Send.

Docs12 - 3

The recipients will receive an email like this:

Docs12 - 4

Email as attachment

If you want to send them a ‘physical’ copy of the document, maybe because they don’t have access to the Google Document or you want to send them a snapshot of what’s on there and not have live access to it, then you can send it in various formats.

Go to the “file” menu and select “Email as an attachment”.

Docs12 - 5

Fill in the email. Note that in the “To:” box, as you type the names of the recipients, if they are already in your contacts, they will appear below so you can click on them without having to type them out completely.

 Sheets9 - 12

Then select which format you want. You can email it as a PDF, a Microsoft Word document (.docx), a Rich Text (.rtf) file, an HTML file (.html), as plain text (.txt), or as an Open Office document (.ods).

Docs12 - 6

You can also paste the document the item into the email. It looks something like this:

Docs12 - 7

Note, if you have a document with lots of formatting and images, sometimes there are problems when the file is converted to the Word format. If in doubt, check before sending them, by downloading the file (see above).

Sharing a document

To share your document from within the file, click on the blue “Share” button in the top right-hand corner of the screen.

Sheets9 - 14

This will open the Share with others dialogue box. Here you can add people you want to be able to edit or view your document. This is the same as doing it in Google Drive, see my post on sharing files in Google Drive.

Docs12 - 8

Note, this shares the file with them and it will appear in their ‘Shared with me’ filter. By default, they will receive an email saying that you have shared it with them, with a link to the file.

eBooks now available on Drive, Forms, Sheets, Docs, and Slides:

  • Join the Google Slides Tips Google Space (for now: personal accounts only)

Baz Roberts (Flipboard / Twitter / Google+)