הרחבת Google Docs

Google Apps Script מאפשר לך ליצור ולשנות את Google Docs באופן פרוגרמטי, כמו גם להתאים אישית את ממשק המשתמש באמצעות תפריטים חדשים, תיבות דו-שיח סרגלי צד.

העקרונות הבסיסיים

Apps Script יכול לקיים אינטראקציה עם Google Docs בשתי דרכים: ליצור או לשנות מסמך אם למשתמש של הסקריפט יש את ההרשאות המתאימות המסמך, וסקריפט יכול להיות גם מאוגדות למסמך, לסקריפט יכולות מיוחדות לשנות את ממשק המשתמש או להגיב כאשר המסמך פתוח. כדי ליצור סקריפט שמאוגד בקונטיינר מתוך Google Docs, לוחצים על תוספים > Apps Script.

בכל מקרה, קל ליצור אינטראקציה עם מסמך Google Docs דרך Document Service, כדוגמה הבאה מדגים.

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

הסקריפט שלמעלה יוצר מסמך חדש ב-Google Drive של המשתמש, ולאחר מכן מוסיף פסקה שמכילה אותו טקסט כמו שם המסמך, סגנונות של פיסקה ככותרת, ומצרפת טבלה על סמך הערכים מערך דו-ממדי. הסקריפט יכול לבצע בקלות את השינויים האלה של המסמך הקיים, על ידי החלפת הקריאה ל- DocumentApp.create() עם DocumentApp.openById() או openByUrl(). לסקריפטים שנוצרו בתוך מסמך (שקשור למאגר), משתמשים DocumentApp.getActiveDocument()

מבנה המסמך

מבחינת Apps Script, המבנה של מסמך ב-Google Docs דומה מאוד ל-HTML כלומר, מסמך Google Docs מורכב מאלמנטים (כמו Paragraph או Table) שמכילים בדרך כלל רכיבים. רוב הסקריפטים המשנים מסמך Google Docs מתחילים בקריאה ל- getBody(), כי Body הוא רכיב ראשי מכיל את כל שאר הרכיבים מלבד HeaderSection, FooterSection, וכל Footnotes.

עם זאת, יש כללים שקובעים אילו סוגים של רכיבים יכולים להכיל סוגים אחרים. בנוסף, שירות המסמכים ב-Apps Script יכול להוסיף רק סוגים מסוימים של אלמנטים. העץ הבא מראה אילו אלמנטים יכולים להיכלל סוג הרכיב.

ניתן להוסיף רכיבים שמוצגים בגופן מודגש. אלמנטים לא מודגשים יכולים להיות בוצעה בו מניפולציה.

החלפת טקסט

לרוב, נעשה שימוש ב-Apps Script כדי להחליף טקסט ב-Google Docs. נניח שיש לנו גיליון אלקטרוני מלא במידע על לקוחות ואתם רוצים ליצור Google Docs לכל לקוח. (פעולה זו נקראת לעיתים קרובות 'דואר' merge.)

יש הרבה דרכים להחליף טקסט, אבל הדרך הפשוטה ביותר היא ה-method replaceText() מוצגת בדוגמה הבאה. רוב התמיכה של replaceText נתמכת של תכונות הביטוי הרגולרי של JavaScript. הפונקציה הראשונה שלמטה מוסיף כמה שורות של placeholder של טקסט למסמך Google Docs; בעולם האמיתי, תהיה סבירות גבוהה יותר שתקלידו את ה-placeholders במסמך בעצמכם. הפונקציה השנייה מחליפה את ה-placeholders במאפיינים שמוגדרים אובייקט client.

שימו לב ששתי הפונקציות האלה משתמשות getActiveDocument() שיטה אחרת, שחלה רק על סקריפטים שנוצרו במסמך Google Docs; תוך שימוש סקריפט עצמאי, השתמשו DocumentApp.create(), openById(), או openByUrl() במקום זאת.

הוספת כמה placeholders

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

החלפת ה-placeholders

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

תפריטים וממשקי משתמש מותאמים אישית

ניתן להתאים אישית את Google Docs על ידי הוספת תפריטים, תיבות דו-שיח סרגלי צד. עם זאת, חשוב לזכור שסקריפט יכול לקיים אינטראקציה עם ממשק המשתמש רק עבור במופע הנוכחי של מסמך פתוח, ורק אם הסקריפט משויך למסמך.

איך מוסיפים תפריטים מותאמים אישית תיבות דו-שיח ב-Google Docs. למידע נוסף על יצירת ממשקים מותאמים אישית עבור תיבת דו-שיח או סרגל צד, אפשר לעיין במאמר המדריך לשימוש ב-HTML Service. אם אתם מתכננים לפרסם את הממשק המותאם אישית שלכם כחלק , style guide כדי לשמור על עקביות של עורך Google Docs.

תוספים ל-Google Docs

תוספים פועלים ב-Google Docs ואפשר להתקין אותם מחנות התוספים של Google Docs. אם פיתחתם סקריפט ל-Google Docs ורוצים לשתף אותו עם העולם, Apps Script מאפשר לכם לפרסם את הסקריפט כדי שמשתמשים אחרים יוכלו להתקין אותו מחנות התוספים.

כדי ללמוד איך יוצרים תוסף ל-Google Docs, אפשר להיכנס לאתר מדריך למתחילים ליצירת תוספים ל-Docs.

טריגרים

סקריפטים שמקושרים אל Google המסמך יכול להשתמש בטריגר פשוט כדי להגיב לאירוע של המסמך onOpen, ש מתרחשת בכל פעם שמשתמש שיש לו גישת עריכה למסמך פותח אותו ב-Google Docs.

כדי להגדיר את הטריגר, כותבים פונקציה בשם onOpen(). לדוגמה בטריגר הזה מוסבר על תפריטים מותאמים אישית ב-Google Workspace. למרות שהטריגר הפשוט שימושי להוספת תפריטים, הוא לא יכול להשתמש באף אפליקציה שירותי סקריפטים שנדרשים להם הרשאה.