I have wanted to do this for over a year now and someone on twitter referred me here. I am really grateful for the approach you too, that we could run it ever so often to see what the script does up to this point. I needed quite some time to finish it, but I have procrastinated doing exactly what you are showing for more than a year. Hence again: Thank You!!!
@TheKnightrunners3 жыл бұрын
Thanks. I lost MS office during an Apple upgrade. This is a big help for getting the Christmas mail out!
@jesse63273 жыл бұрын
Wow, this is awesome. We are using Google Suite at work now, and several months back I told someone that there's no way to do a mail merge like function from Google Sheets to Docs. I am so glad I found this; now I can help them out, since they need to get out of their MS Office environment. Thank you!!
@overnesss5 жыл бұрын
I'm following you for months now. Your channel helped me a lot, but this. This is just exactly what I was struggling with since last month. Thanks for your content.
@gorkasanz16173 жыл бұрын
A five star tutorial. And, for non-english people very clear speech. And it have a lot of tips to learn coding in Google Apps
@rachaellynn704 жыл бұрын
Awesome tutorial. Love how you walk through your thinking process and the various iterations. Plus, I needed to do exactly this (without an add-one). Thanks!
@evacitti8 күн бұрын
I needed to do something very similar and this was an AMAZING solution. Very well explained and easy to follow along. Thank you!
@sangredecristoseminary5 жыл бұрын
This video helped me think differently about how to process donation statements posted in Google Sheets. Noting that the paragraph type is a concern I wondered about how images or drawings inserted into the template document would copy to the body of the document to be printed. I found this is a problem because images/drawings show as type "PARAGRAPH", and the results of the copy are not exactly as that shown in the template document. In my tests the template document has headers and footers with images (such as a logo), which I simply add to the document to be printed since they're static and used for each statement. I wonder if this would be a good addition to the mail merge tutorial, and a challenge for our excellent instructor? Would other subscribers like to see this?
@philipmeese65014 жыл бұрын
this was an awesome video. I've dabbled in AppScript but I learned so much in this video just by watching your approach to this problem. Thank You!
@mpolek3 жыл бұрын
Thank you so much! This worked perfectly for me to set up Christmas card envelopes. I love that you left in the "mistakes" so I could really learn how this was put together. So helpful!
@allisonrosdahl3 жыл бұрын
thank you so much! this helped me not have to write out all of my christmas card addresses!
@kamalhm-dev5 жыл бұрын
Your videos really improve my productivity and makes my life easier. I'm curious, how do you know so much about this? This is not a very popular topic, I wasn't even sure where to find the documentation
@rafaelwendel14005 жыл бұрын
You can actually find all these methods in Google Scripts Documentation (click on the help button on GS UI). I think you might find it surprising because you come from the spreadsheets world or something like that, but it's actually quite simple and popular to create these types of functions, just search for Google Scripts in StackOverflow
@mohsenghafari76523 жыл бұрын
same....
@mohsenghafari76523 жыл бұрын
@@rafaelwendel1400 please more explain . tanks
@good36085 жыл бұрын
yes thank you very much this is also what i needed. i am starting to understand what you are doing after 6 weeks of following your channel. I am building a database for the charity i work for and watching your channel and learning what to do in GS is very helpful.
@santosahernandezmendoza71475 жыл бұрын
A very ingenious way to pass google spreadsheet data to a document. Thank you because it motivates me to study more in depth the topic of Scripts.
@BillHeffelfinger4 ай бұрын
Thank you! Super helpful. Two questions I hope you can help with: 1) If I have images in a cell in a sheet and want to merge them into the doc, how would I go about doing this? 2) I need to format dates that get merged into the doc from the spreadsheet. Any suggestions on how to do this? Thanks again!
@glenntrewitt4 жыл бұрын
This worked well for me. Not for non-programmers, and my doc was simple.
@restorationchurch15094 жыл бұрын
You did an incredible job walking through that very complicated process. I have limited-to-no experience with Javascript, yet I was able to work through this tutorial and successfully create the mail merge I wanted for our fundraiser in Google Drive. I actually appreciated that you misspelled some of the titles because it helped me differentiate between what was a title I gave something and which was a command that I couldn't rename. (Again no experience). I even was able to successfully add an image to my final product with this tutorial base. Ready to laugh? My only problem: I refreshed my Google Sheet (with my source code editor open) because it is connected to a Google Form Survey. When I did, my editor closed, and I'm flummoxed for the moment on how to reopen the editor. Attempts to open the same way as the tutorial in the beginning gives me "Sorry" messages. Told you, no experience! I'll figure it out after awhile. It's saved and named somewhere. Great job! Excellent teacher.
@ExcelGoogleSheets4 жыл бұрын
script.google.com/home
@BrookeAdamsnationwide4 жыл бұрын
What an excellent video! I had to stop and go back several times but this was extremely thorough! I appreciate the fact that you were testing the functions throughout to be sure that it was working properly. I'm not tech savvy at all but this really helped so much. Thanks!!
@emmaoben4436Ай бұрын
This is such a good instructional, thank you. Do you have a version which merges to Slides? Trying to adapt but not getting very far!
@adoleh4 жыл бұрын
Thank you for the tutorial, it was very helpful. I have a question. If the item I am trying to merge is a QR code, what would elType be and how would you code that? The QR codes would be generated in the spreadsheet using the google API. Thanks.
@kokomalt4 жыл бұрын
The tutorial was great and it can be followed easily, thank you for making it!
@erinalilith79625 жыл бұрын
Hi, thank you for this great video.. You basically saved me from a huge headache
@nwdani21955 жыл бұрын
Your tutorial is awesome. Not only is clear but you also properly designed the steps to show its purpose, in a flow of show-problem and later show-solution. Now is there any technique for automatically populate the 'final doc' whenever new row got added to the 'spreadsheet' without having to manually run the scipt? Cheers
@studentregistration97084 жыл бұрын
This was awesome, thanks! How do I carry over a table, and could I instead of doing a page break do separate PDFs?
@mioked5 жыл бұрын
this is amazing...thank you very much for sharing! Is there a way to have it create a new doc each time for each row of data rather than page break on the same doc?
@angelobergomi58694 жыл бұрын
Awesome ! Thanks a lot ! All positive thoughts about your work I would like to share has allready been written below...
@XoBebeMore4 жыл бұрын
This was a very great video!! Took some time but I mastered it and saved my company some money!!!
@mrskbela4 жыл бұрын
Excellent video! Very informative and easy to follow by someone who is learning about Apps Scripts. I found your video while looking for an example of how to merge a unique image into each document (similar to what someone might do to batch create employee ID badges or personalized labels). Do you have a video that explains merging unique images or could you point me to a good example and or documentation?
@mhilmanad Жыл бұрын
Thank you for being so helpful; the explanation is straightforward to understand. If I want to send Bulk emails with this pre-made template, how do I do that? Thank you
@richardsunshine86765 жыл бұрын
Your videos are always great, and I use them extensively. How do you create individual Emails with the appropriate attachment for each recipient?
@sixzeroes52269 ай бұрын
Great tutorial - I was able free up time spent on a redundant task. Thanks!
@gogoulor5 жыл бұрын
Hi. Works perfect, very explicit method. Q: I have inserted an image in a cell, then, how could i do If i want that image in my final document ? Regards.
@shinichi0noT4 жыл бұрын
Have you figured it out?
@TerriEynon2 жыл бұрын
Thank you for this excellent tutorial. You are a very patient teacher. Being able to stop and start umpteen times to see what you actually did was great. I managed to go, in one day, from being a complete Google Spreadsheets novice to the Team Geek able to turn shedloads of data into usable reports. One glitch I couldn't manage to solve: when putting the date '26/10/2021' from a spreadsheet via a template into a report, it comes out as 'Tue Oct 26 2021 00:00:00 GMT+0100 (British Summer Time)'. I've done all the obvious stuff like format the cells in the spreadsheet but it still comes over with the hours and all the unnecessary information. Is there something I should know or another tutorial I need to look at to sort this? Thanks.
@kimjacobs83873 жыл бұрын
This is amazing....! Thank you, thank you...! I am a bit of a spelling nut so that did get me a little, but the way you explain concepts etc and the added pieces about how to see what arguments are available are *fantastic*. I'm hooked..
@kacheongman27173 жыл бұрын
love your video. Would you like to covered how to mail merge a table in template?
@ConstantDylan3 жыл бұрын
Dude, this is amazing and so helpful. You're a champ!
@seattlebliss31783 жыл бұрын
Thanks for this very helpful tutorial. Works beautifully for my application!
@dianatriwulan96123 жыл бұрын
I am sorry. Can i ask how to do this if the template is tables in google docs?
@scottgraves53495 жыл бұрын
Is there a way to format the text we are merging to an email? Example, I want a word to be blue and bold. Is there a way to add an attachment in the merge to email?
@templerodgers76877 ай бұрын
superb! just what I was looking for! Thank you
@marcelcharest76623 жыл бұрын
Your're the beat. Thanks from Montréal
@alexanderbtodorov3 жыл бұрын
Hello, thanks for the great lessons! Do you have a tutorial how to create invoices generated with data from a Google Sheet and based on Google Docs template, and after the generation in PDF to send the invoices directly to the customers?
@pjotrpottervogel19902 жыл бұрын
thank you very much, sir! your tutorial made it possible i can generate my 7d2d mod almost automatic WITHOUT TYPOS!!! hell, yeah! ^^
@jakenaylor4 жыл бұрын
This is an amazing video. Keen to check out some more of your videos! Cheers. :D
@ErwinOpdenkamp4 жыл бұрын
This is great, I just have to ask if it is possible to get a separate final document for each line in the spreadsheet. Thanks
@sambrightwell36764 жыл бұрын
Yes! Watch the video right through. There's a line of code he adds to create a page break in the function, so you get a separate document for each line of the spreadsheet.
@phoenixfeather205310 ай бұрын
Thank you SO MUCH for your excellent video! I built a mail merge (based on your video) two years ago and it has been working spectacularly .... until yesterday. Now (suddenly) it is throwing an error message: " Error Service Documents failed while accessing document with id xxxxxxx..... " It does not indicate a line or any other information. I have tried running it from a different user - same. I have tried using a different doc with a different id - same. I do not understand why [suddenly] it would not work. Please advise if possible! Again, THANK YOU!!
@TheOneLifeRider7 ай бұрын
have you found a solution?
@muharmensuari19554 жыл бұрын
why error when I add listittem Exception: The parameters (DocumentApp.ListItem) don't match the method signature for DocumentApp.Body.appendParagraph.
@guruslakkimar124 жыл бұрын
Yes - i am facing the same issue - did you rectification ! any solutions available ?
@corvandooren22483 жыл бұрын
@@guruslakkimar12 I have created a copy function which works: //copy doc function copyContentDoc(filename=null) { var sourceDoc = DocumentApp.getActiveDocument().getBody(); if(filename === null){ filename = 'Kopie van_'+DocumentApp.getActiveDocument().getName(); } var targetDoc = DocumentApp.create(filename); var totalElements = sourceDoc.getNumChildren(); for( var j = 0; j < totalElements; ++j ) { var targetBody = targetDoc.getBody(); var element = sourceDoc.getChild(j).copy(); var type = element.getType(); var attributes = element.getAttributes(); if( type == DocumentApp.ElementType.PARAGRAPH ){ targetBody.appendParagraph(element); } else if( type == DocumentApp.ElementType.TABLE){ targetBody.appendTable(element).setAttributes(attributes); } else if( type == DocumentApp.ElementType.LIST_ITEM){ targetBody.appendListItem(element).setAttributes(attributes); } else if( type == DocumentApp.ElementType.PAGE_BREAK){ targetBody.appendPageBreak(element).setAttributes(attributes); } else if( type == DocumentApp.ElementType.HEADER_SECTION){ targetDoc.addHeader().setText(element).setAttributes(attributes); } else if( type == DocumentApp.ElementType.FOOTER_SECTION){ targetDoc.addFooter().setText(element).setAttributes(attributes); } // ...add other conditions of DocumentApp.ElementType } targetDoc.saveAndClose(); return true; }
@nestorpagoaga27563 жыл бұрын
Thank for all. great video. but can we do it with some image in the sheet base? maybe in one column we have image that we want to changed in the docs so i can send in a email with the fuction replace in append paragraph or replace with hmtl ?
@jimmywebb72693 жыл бұрын
Really enjoyed the tutorial; Help me tremedously
@bachchuhaldar37837 ай бұрын
Excellent video.. But sir.. Please use picture in mailmarge .... Please sir
@dfpdesignforpeace29453 жыл бұрын
Thanks so much for this useful demo. It worked brilliantly! Is there a way to 'getTables' along with their contents? My Template document contains a table with a complex layout. Is that hard to handle?
@phoenixr56194 жыл бұрын
Great Video!! How would I translate that into Labels? I get the {name}, Etc, Etc.... but how would I format that into the final spaced as labels? For instance, could I upload a label template (word) into google drive and use this to translate INTO the word doc??
@michaelwood99672 жыл бұрын
I had the same questions and after a lot of tinkering, got it to work. You need to append a Table to the final doc first and pass it to the mailMerge function. Then, inside the mailMerge function (before the forEach statement), you append a row to the table and set the row's minimum height to the height of your label. You also append a cell to the row. Then, inside the forEach statement, append the mail merge data (from this tutorial) to the cell. In my case, I wanted two columns of labels, so in the final doc, I manually set it to be two columns. I couldn't find a way do do that with Google Scripts, but fortunately, formatting it to two columns works just great. The table cell fills the entire width of the column (or document if you don't make columns). Finally, because a table has to have a paragraph before it, it seems to mess up the first column of labels on the first page. I was able to fix this by using google scripts to set the final document body font to size 1 and the document spacing to .06. You can't tell the paragraph is there and my labels work great! Lifesaver for my own project and this tutorial got me started! Thanks!
@alexzhang58165 жыл бұрын
This is great, wluld you please help us take this further and hook this to email script so it sends out from a list of associated email addresses in the spreadsheet? Thanks Alex
@CIKGURAFI4 жыл бұрын
I have shared my coding with you using my gdrive..i hope you can help me fixing my coding or giving any ideas, thanks a lot..
@SweetLittleSoul3 жыл бұрын
This is a great sales tool for Microsoft Office. I remember their process so much easier.
@michaelwood99672 жыл бұрын
It definitely is easier for someone who is used to doing it and someone who is fairly tech literate, but I have a mail merge that needs to be completed on a regular basis by some people who aren't terribly computer savvy. It was more work for me to set it up initially, but now for all the other users, they click a button to run the script and the merge is automatically completed for them. Way easier for them to use than for me teaching them how to do a Word merge.
@amandawilliams39793 жыл бұрын
I FREAKING LOVE YOU!!! THANK YOU!
@fiwaboarding69955 жыл бұрын
it's a great job. I have some problem in applying number and table. how can i restrat the number for each page break since this video use list_item. then how can i apply table in the final document? thanks
@sandersontestprep87385 жыл бұрын
That helps us create a Google Doc with separate pages. Can you finish it out and tell us how to automate sending each separate page as a separate email?
@abdulhamidalfani4 жыл бұрын
Hi I enjoyed ur vids, but could you pls show the final result first how it looks like in ur first 1 minute, and in what scenario we'll need it... thx
@genrmx5 жыл бұрын
Cool video! But i wonder. Is it possible that if a certain cell has value X then copy cel [0][1][2][3][4] If it has value Y then copy cell [10], [11],[12],[13] and if cell has value Z then copy cells [5],[6],[7],[8],[9]
@comblee99684 жыл бұрын
Hi This is very helpful for collecting applications forms,I have a question though. One of my columns is Image link from Google drive. Is it possible to make that image show on google doc?
@vinodjha29634 жыл бұрын
Really great learning for a beginner like me. I could create a merged email as per my requirement, but I could not send it to the recipient. IF you can help me with that.
@ExcelGoogleSheets4 жыл бұрын
If you want to send emails you should be using HTML not Google Docs. Here is an example kzfaq.info/get/bejne/npiqZJaKqpnPeps.html
@Korelucian3 жыл бұрын
How would you place an item where the table has some empty cells, e.g. if I am making a script from a cell where I have sales document, with the source worksheet i have columns named after a product and rows with different branches, some branches might not sell certain items from the table. how can I make the script to add on the mail merge with only the products that has sales value on it
@migueldemaria38304 жыл бұрын
That's a very helpful vid, thanks a lot!
@mahimanasa15 жыл бұрын
It's a nice classes.. I wanna learn one thing, in the nail merge how to print the sheets instead of creating the documents.. in the MS office it is available, but in Google sheet we have this limitations. Pls kindly assist
@mr_k4tz4 жыл бұрын
Great tutorial. Is there a way to select from multiple of templates based on the contents of a cell? for example if a cell says "x" use template "x", but if a cell says "y" use template "y" etc?
@rj.laluyan3 жыл бұрын
Create 2 templates, get the ID, set var for each of them. Use if condition in the script pointing to the template (x or y).
@jkevinAH3 жыл бұрын
my template has a letter on the 1st page only (the whole template has 2 pages), ive replicated your tutorial and it works but the header is not copied :( also ive noticed that for the numbered lists (instead of bullet points), my problem is the number lists continues from one copy to the next so my last copy has numbered lists starting from 50. instead of 1.
@CHETANSOMASHEKAR5 жыл бұрын
How to put a table in google doc template and send data from google sheets to doc table?
@Lassereinhardt14 жыл бұрын
Hi. Love your app script videos. If you could cover export pdf files to Google drive in app script in a video. I would be much appreciated. Thanks
@mirfanalfian83132 жыл бұрын
Thank you very much for the video, it help me a lot for my work.
@ExcelGoogleSheets2 жыл бұрын
Glad to hear that!
@julianmartin45825 жыл бұрын
Thank you for the video! I am running into an error (TypeError: Cannot call method "forEach" of undefined. (line 25, file "Code")) Any advice as to how to fix this? Thanks!
@DarrynGordon4 жыл бұрын
I had a similar problem. You probably aren't passing in the correct number of parameters as per the function declaration.
@tinman.124 жыл бұрын
Can you tell me what the inside of { } is known as. I want my responses to be blue but do not know how to reference them in the code to ensure that all entries are blue instead of black (blue is for legal, black is for the dead, red is for the living and purple is Royalty)
@jesuseduardobittersuarez75173 жыл бұрын
I have multiple rows for echa person, so I need to send a table must of the time to each one, can I do it?
@NenTata145 жыл бұрын
Can you teach me/ us how to make a copy of a template file in google docs then save it as PDF file in a specific folder in google drive. Thank you so much
@hiperxavi4 жыл бұрын
Have another vídeo to show how yo create a new single document for each ss row?
@dylandrake8874 жыл бұрын
Any idea why it's creating an extra copy of the template along with the "merged" version?
@justinwright77882 жыл бұрын
Was this ever figured out?
@roycerowan97254 жыл бұрын
How would I use this to update multiple documents at one time? Each row would be mapped to its own google doc. Thanks
@sarfarazm55685 жыл бұрын
Hi wonderful app , What do we do if we want to draft this drafts in gmail draft folder with the email and all the document
@classicguy78134 жыл бұрын
Hi Guru and beyond of Apps Script guy! Sir how do we replace links with pictures and let the google do the backend job for pasting pictures to google docs
@izharjafri11975 жыл бұрын
Hey just wondering if you can help me in getting input for row number through prompt box for a row record we want to merge in doc
@davidaxelrad86844 жыл бұрын
What is the easiest solution to run this script using the doc as a template and outputting a PDF for repetitive usage from a single line of code?
@supportingofficer97453 жыл бұрын
great presentasion, thankyou. how to make a straight point for the end of a sentence?
@tonybell92014 жыл бұрын
But what if you want to copy boxes and images as well? I get an error when it hit those.
@rafaelwendel14005 жыл бұрын
Very didactic explanation, which should get it clear for beginners, but wouldn't it be better to just use Object.keys method to create a pattern finder rather than parse them manually?
@ExcelGoogleSheets5 жыл бұрын
Probably :) I'm sure people who already know programming will figure that out themselves.
@hkoranteng14 жыл бұрын
@Rafael Wendel - why would it be better? I'm interested from the perspective of a novice coder.
@sarahjaeger1017 Жыл бұрын
HELP?! Everything worked until the final run. I am getting this message and I am not sure what to do with it. Thank you! 10:55:14 AM Error Too many changes applied before saving document. Please save changes in smaller batches using Document.saveAndClose(), then reopen the document with Document.openById().
@radhakrishnarao24852 жыл бұрын
I am trying to do the same but with a background image in the template Doc. It throws the error service unavilable. How can i merge docs with background images?
@elsgrupovino73144 жыл бұрын
Can you insert an image in this mail merge?
@mohsenghafari76523 жыл бұрын
Hi do you solved this problem?
@ctheseira24 жыл бұрын
Nice tutorial. Do you have an example for mail merge between Google Sheets and GMail?
@ExcelGoogleSheets4 жыл бұрын
Not through GMail UI, but sending email through GMail kzfaq.info/get/bejne/npiqZJaKqpnPeps.html
@karenpasternak62254 жыл бұрын
As soon as I get to the step on line 13 to appendParagraph, I receive "Service unavailable: Documents (line 13, file "Code")" Everything works up to that point.
@tomsawkins98284 жыл бұрын
I had same issue. I removed my image - ran it - then put image back.
@krzysztofszeremeta26094 жыл бұрын
Dear. What use this solution for use with postage stamp from pdf list file with image? Poland Post (Envelo)?
@angeliegelayssioson49754 жыл бұрын
This is very interesting but can we make it more user friendly where a person can submit a list of names and address and will just fill out a template.
@codobyte3 жыл бұрын
When I copy a multi-level list (LIST_ITEM's) and would like to add some level in the final doc, the formatting is lost. How can I copy a list AND keep the format in the final doc when the user edits the list?
@erikt96644 жыл бұрын
Great!! works perfect., it is possible set filters? I mean, if I need merge only the information with "Kansas City" value in the column D. Is that possible?. I thought that with only setting filters to the data it will work, but sadly doesn't :(
@ExcelGoogleSheets4 жыл бұрын
it's possible. Watch my apps script series array methods videos, in particular filter method.
@austinhomolka4 жыл бұрын
So helpful, thank you for putting out this content!
@abdullahquhtani42475 жыл бұрын
I hope you reply to this. Is it possible to do this with google forms so email will be sent right after submission. I’m sure many ppl need this as well as I do. I can pay you for modification that match my needs.
@ExcelGoogleSheets5 жыл бұрын
kzfaq.info/get/bejne/fp2Hec6lm7CYoqc.html
@ferialhamid29134 жыл бұрын
Great, Thanks for the tutorial.. It's helps a lot.
@JimSlaughterOC4 жыл бұрын
Thanks very much. Great presentation.
@Izedyn174 жыл бұрын
Thank you so much for this
@govtmiddleschoolbodla2535 Жыл бұрын
can we add images in cells and display in generated pdfs.?
@joelsigue83992 жыл бұрын
is it possible to insert a SQL query in the script and make use of "where" to filter? thank you for the very useful video.
@ExcelGoogleSheets2 жыл бұрын
No, but you can use JavaScript filter method kzfaq.info/get/bejne/hrqPh6eZss67o3k.html
@goldenwilliams5 жыл бұрын
I'm having all kinds of problems with this...it says "Cannot find function forEach in object Document. (line 27, file "Code"). HELP! I'm following this as closely as I can.
@mariop42115 жыл бұрын
did you find a solution to this?
@goldenwilliams5 жыл бұрын
@@mariop4211 not yet. I gave up and started using MSword for it
@ExcelGoogleSheets5 жыл бұрын
If it says there is no somevar.forEach that means you had a problem in the line before where you defined somevar.
@mariop42115 жыл бұрын
@@goldenwilliams the problem for me was ensuring that I told the function to include another r(i) value
@mariop42115 жыл бұрын
@@ExcelGoogleSheets First off thanks for the video! Secondly I inputed a table into my template Doc, and it doesn't show in the final Doc. Any advice?