@Y-Excel-Access כיוון שאני רואה שלא נתנו פה הדרכה יותר טובה או קישור למשהו מוכן, אנסה לכתוב משהו:
א - קריאה/כתיבה לטבלת שיטס מתוך גוגל סקריפט
כל הנ"ל מתייחס לאם רוצים לקבל/לכתוב יותר מאשר תא של 1X1, אחרת ניתן להשתמש במתודת getValue
/setValue
בהתאמה, שמקבלת/מחזירה סטרינג.
הקריאה/כתיבה של נתונים אל קובץ השיטס נעשית באמצעות הSpreadsheet Service, כאשר הפעולה נעשית על ידי קבלת "אזור" תאים בטבלה - ragne
, וכתיבה אליו של "מערך דו מימדי", או בקריאה - שימוש במתודה getValues
על הrange מה שיחזיר מערך דו מימדי.
לדוגמה יש כזו טבלה:
נוסיף סקריפט דרך הטבלה - מה שיאפשר לי להשתמש בgetActiveSheet
:
ונכתוב בו את הפונקציה הבאה:
function getSheetValues() {
const sheet = SpreadsheetApp.getActiveSheet()
const range = sheet.getRange('A1:B3')
const values = range.getValues()
Logger.log(JSON.stringify(values))
}
כאן אני מקבל את כל השורות בטבלה אז ניתן באותה מידה להשתמש בsheet.getValues()
, אבל באופן כללי, כשזה רלוונטי, נעדיף לקבל רק את הטווח הרלוונטי כדי לחסוך ב"שאילתות" מול שירות חיצוני - השיטס, שמאיטות את הריצה של הקוד.
יודפס המערך דו-מימדי הבא שמייצג את הטבלה:
[["שם","תפקיד"],["משה","מנהל"],["יעקב","מזכיר"]]
כאשר התת-מערך הראשון מייצג את השורה הראשונה - שבד"כ מקובל להתייחס אליה ככותרות הטבלה, "שם" ו"תפקיד", והשני מייצג את ערכי השורה השניה - "משה" ו"מנהל", כך שאם לדוגמה ארצה לדעת מה התפקיד של האדם שמיוצג בשורה השניה (משה) אכתוב ככה (כאשר values
הוא המערך הדו מימדי הנזכר):
values[1][1] // "מנהל"
ממילא כל ההתעסקות עם הנתונים היא עם מתודות של מערכים בJS - סתם לדוגמה אני אוהב להפריד את השורה הראשונה ע"י מתודת shift
.
אם לדוגמה יעקב המזכיר קודם לדרגת מנהל, וגם שינו את שמו עקב מחלה קשה ליעקב-חיים, ואני ארצה לעדכן את השורה שלו,
אבצע את הפעולה הבאה:
sheet.getRange(2, 1, 1, 2).setValues([["יעקב חיים", "מנהל"]]);
כלומר אני מקבל את הrange בצורה הבאה:
דהיינו:
החל משורה: 2 (=שורה 1 לא כולל הכותרות)
החל מעמודה: 1
כמות שורות: 1
כמות עמודות: 2
ולאחר מכן אני כותב לטווח שזה בעצם האזור הזה בטבלה, מערך דו מימדי שכמובן במקרה הזה מכיל רק תת-מערך אחד.
אני מקווה שלא יצא מידי מעורפל, אם יש שאלות אתה מוזמן לשאול.
ב - שליחת בקשות לAPI של ימות
החלק הזה הוא החלק הפשוט, שליחת בקשות נעשית באמצעות UrlFetchApp (בד"כ באמצעות UrlFetchApp.fetch
(קישור)), ויש לימות תיעוד ברור של הAPI שלהם:
https://f2.freeivr.co.il/topic/55