title: Issue with creating an "old-fashioned" mail merge with Google Apps Script
body: <p>This is a followup to a question I asked yesterday on the Google Apps Script Office Hours Hangout.</p>
  
  <p>The goal of my final script is to create an election process for student elections at the high school where I work using Google Forms.  The script has three parts: 1) Create Unique "Voting IDs" (a random 6-digit code) 2) Merge the student data (Name, Homeroom, &amp; Voting ID) on with a template document that will create specific voting instruction for each student. (i.e. an old-fashioned mail merge) 3) Verify the results by checking Voting ID's and removing duplicate votes.</p>
  
  <p>The part of the script that I am having trouble with is the student data merge (step 2).  The first dataset is the only one that works. The rest show up as "DocumentBodySection".  I have a feeling it is either how I am copying the text from the Document Template or how I am adding the text to the new document.</p>
  
  <p>Spreadsheet w/ Data: <a href="https://docs.google.com/spreadsheet/ccc?key=0AierVcXWELCudFI1LU10RnlIVHNsUm11a0dDWEV6M1E" rel="nofollow">https://docs.google.com/spreadsheet/ccc?key=0AierVcXWELCudFI1LU10RnlIVHNsUm11a0dDWEV6M1E</a></p>
  
  <p>Document Template: (see followup comment for url)</p>
  
  <p>Document Created by Script: <a href="https://docs.google.com/document/d/12r2D9SpIVmQYVaasMyMWKjHz6q-ZZyIMEBGHTwlQct8/edit" rel="nofollow">https://docs.google.com/document/d/12r2D9SpIVmQYVaasMyMWKjHz6q-ZZyIMEBGHTwlQct8/edit</a></p>
  
  <pre><code>//Get Settings &amp; Data
  ss = SpreadsheetApp.getActiveSpreadsheet();
  source_sheet = ss.getSheetByName("Student Data");
  settings_sheet = ss.getSheetByName("SETTINGS");
  results_column = settings_sheet.getRange("B19").getValue();
  source_column = settings_sheet.getRange("B18").getValue();
  source_lastrow = source_sheet.getLastRow();
  docTemplateID = settings_sheet.getRange("B13").getValue();
  docCopyName = settings_sheet.getRange("B14").getValue();
  
  //Merge Student Data with Document
  function SendDataMerge () {
    // Open docTemplate and Copy Contents to entryTemplate
       var docTemplate = DocumentApp.openById(docTemplateID);
       var entryTemplate = docTemplate.getActiveSection();
       docTemplate.saveAndClose();
    // Make a NEW copy of docTemplate
       var docTemplate = DocsList.getFileById(docTemplateID);
       var docCopy = DocsList.copy(docTemplate, docCopyName);
       var docCopyID = docCopy.getId();
    // Create Array of Student Data (First, Last, Grouping, VID)
       var data = source_sheet.getRange("A2:D"+source_lastrow).getValues();
    // Open docCopy for Editing &amp; Clear Contents
       var doc = DocumentApp.openById(docCopyID);
       var docText = doc.editAsText();
    // Run through Student Data
       for(var i=0; i&lt;5 /*data.length*/; i++) { //For testing, limit this to 5 entries 
         var lastName = data[i][0];
         var firstName = data[i][1];
         var grouping = data[i][2];
         var vid = data[i][3];
         docText.replaceText('keyLastName', lastName);
         docText.replaceText('keyFirstName', firstName);
         docText.replaceText('keyGrouping', grouping);
         docText.replaceText('keyVID', vid);
         docText.appendText('\n*** Appended Text (End of entry) ***');
         docText.appendText(entryTemplate);
       }
    // Save and Close 
       doc.saveAndClose();
    }
  </code></pre>