APP SCRIPT האם שייך meta programming? (קוד JS שמריץ string כקוד JS)
-
האם שייך meta programming ב APP SCRIPT ?
(קוד JS שמריץ string כקוד JS)האם אפשר ליצור פונקציה בשיטס (UDF או רק ב APP SCRIPT שלו) בשם "RUNJS(MyCode : string)"?
-
@Y-Excel-Access לכאורה אפשר על ידי הפונקציה
eval()
:eval("Logger.log('Hello world')")
-
@OdedDvir הקוד
function RunJS(){ var TEXT = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange(a500).setvalue(\"Runing!\");"; eval(TEXT); }
מחזיר שגיאת
ReferenceError: a500 is not defined
אולי זה כן עובד, רק צריך לגשת אל הגוגל שיטס כאילו זה סקריפט חיצוני?
-
@Y-Excel-Access נראה שנפלה לך טעות קטנה בהקלדה. צ"ל כך:
function RunJS() { var TEXT = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('a5').setValue('Running!');" eval(TEXT); }
-
@OdedDvir תודה רבה! עובד מצוין.
כמו שהערת היה לי טעות בקוד. הקוד המעודכן -function RunJS(){ var MyCode = "var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange(\"A500\").setValue(505);" eval(MyCode); }
המסקנה היוצאת מכאן:
פונקציית eval נקראת כאילו נכתב הקוד ממש באותו סקריפט, ולא כסקריפט חיצוני.
נפק"מ גם שניסיתי לעשות מזה פונקציית UDF, וזה לא עבד כיException: You do not have permission to call setValue (שורה 1).
כלומר אין הרשאה לפונקציית UDF לקרוא לsetValue. ולא עזר העיקוף דרך eval.