「今週の従業員賞」を変更しましたが、提出時にドキュメントに正確なデータを取得できません。
私の目標は次のとおりです。
1) フォームに必要事項を入力
2) スクリプトでこれらの詳細を収集し、適切なキー ホルダーのドキュメント テンプレートに挿入します。
3) タイトルを変更して PDF でドキュメントの「新しい」コピーを作成する
4) 電子メールは素晴らしいですが、新しいドキュメントを保存する限り、必要ありません。
新しいドキュメントを作成してスクリプトを実行することはできますが、フォームまたはスプレッドシートから正しい (または任意の) データを取得していないようです。フォームに入力した値が表示されるはずの場所に「未定義」が表示され続けます。私のエラーを見るのを手伝ってください。私は文字通り何時間もかけてそれを理解し、コードを書き直しました。前もって感謝します!
私が使用しているドキュメントとスプレッドシート、フォーム、およびスクリプトへのリンクを次に示します。
https://docs.google.com/document/d/1A34uyNyMzp3o8XBzmIGqqfvCH6ocpQWN4HaZ5f4AiDk/edit
https://docs.google.com/spreadsheet/ccc?key=0AkKN7xCpxU54dENoZ0RoSnF1QXhQNnAyX3ZiNmVwRGc#gid=0
これが私の現在のスクリプトです:
function sendDocument() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = sheet.getLastRow(); // First row of data to process
var numRows = 1; // Number of rows to process // Fetch the range of cells
var dataRange = sheet.getRange(startRow, 1,2) // Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var ID = row[1]; // First column
var facility_name = row[2]; // Second column
// Get document template, copy it as a new temp doc, and save the Doc’s id
var copyId = DocsList.getFileById("1A34uyNyMzp3o8XBzmIGqqfvCH6ocpQWN4HaZ5f4AiDk")
.makeCopy("Copy of Mail Merge Doc template"+' for '+facility_name)
.getId();
// Open the temporary document
var copyDoc = DocumentApp.openById(copyId);
// Get the document’s body section
var copyBody = copyDoc.getActiveSection();
// Replace place holder keys/tags,
copyBody.replaceText('keyFacilityName', facility_name);
copyBody.replaceText('keyID', ID);
var todaysDate = Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy");
copyBody.replaceText('keyTodaysDate', todaysDate);
// Save and close the temporary document
copyDoc.saveAndClose();
// Convert temporary document to PDF by using the getAs blob conversion
var pdf = DocsList.getFileById(copyId).getAs("application/pdf");
// Delete temp file
DocsList.getFileById(copyId).setTrashed(false);
}}
また、スクリプトの先頭で次の 2 つのオプションを試して、フォームからデータを「プル」して「新しい」ドキュメントを作成しましたが、成功しませんでした...
// Global variables
docTemplate = “1A34uyNyMzp3o8XBzmIGqqfvCH6ocpQWN4HaZ5f4AiDk”;
docName = “Copy of Mail Merge Doc template”;
function sendDocument() {
// Full name and email address values come from the spreadsheet form
var ID = from-spreadsheet-form
var facility_name = from-spreadsheet-form
...上記のようにスクリプトを続行...
と
// Global variables
docTemplate = “1A34uyNyMzp3o8XBzmIGqqfvCH6ocpQWN4HaZ5f4AiDk”;
docName = “Copy of Mail Merge Doc template”;
function onFormSubmit(e) {
// Full name and email address values come from the spreadsheet form
var ID = e.values[1];
var facility_name = e.values[2];
...上記のようにスクリプトを続行...
可能であれば助けてください。