• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    הקראה מקובץ אקסל

    שאלות ועזרה הדדית
    6
    29
    84
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • H
      HTML מורחק נערך לאחרונה על ידי

      פוסט זה נמחק!
      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • א
        אA @IV נערך לאחרונה על ידי

        @IV
        הסתדרת?

        י תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • י
          י.ע @אA נערך לאחרונה על ידי

          @אA
          אני גם ישמח לדעת איך מקריאים אבל משיטס...

          ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • ע
            עידו @י.ע נערך לאחרונה על ידי

            @י-ע @IV https://f2.freeivr.co.il/topic/18469/הוספת-התאמת-והשמעת-נתוני-רישום-דרך-גוגל-סקריפט-קבלת-נתונים-בשילוב-הודעות-אישיות/1

            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • י
              י.ע @עידו נערך לאחרונה על ידי

              @עידו תודה
              אבל אני רוצה שיקח קובץ YMER ויציג אותו בטבלה
              אני ינסה לבנות דרך לנתח אותו ואני רוצה שהמאזין יוכל לשמוע את הניתוח
              וזה בעצם 3 שלבים
              א. שיטס שמקבל אוטומטי את הלוג מהשלוחה הרצויה (לא הצלחתי אם שום מדריך.... הם פשוט לא עובדים.... לי עכ"פ...)
              ב. ניתוח נתונים (שזה אני יבקש מהבינה....)
              ג. שהמאזין יוכל לשמוע את הניתוח שרלוונטי עבורו (בעצם את העמודה/גליון שלו בשיטס...)
              אם יש לך דרך תעדכן אותי....

              ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • ע
                עידו @י.ע נערך לאחרונה על ידי

                @י-ע אתה יכוללבקש הכל מהבינה.
                כל מה שצריך זה שיטס עם סקריפט שימשוך את הקובץ המבוקש כל פעם ששולחים אליו בקשת get, יעבד אותו לפי מה שאתה רוצה ויעלה את הטקסט המעובד כהודעות אישיות בשלוחה המתאימה. ואז תעשה שלוחת API שתשלח בקשה לסקריפט ויעברו אליה בסיום פעולת העברת נקודות, או כל פעולה שמצריכה עדכון של הנתונים.
                תעשה סקריפט שמעדכן רק מה שהשתנה.

                ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • ע
                  עידו @עידו נערך לאחרונה על ידי

                  @עידו אתה עובד קשה, תנהל הכל דרך השיטס והסקריפט וזהו...

                  י תגובה 1 תגובה אחרונה תגובה ציטוט 1
                  • י
                    י.ע @עידו נערך לאחרונה על ידי

                    @עידו
                    הבינה לא מבינה את זה אבל עלה לי רעיון
                    בעצם לפתוח שלוחת השמעת קבצים לכל משתמש שמספר השלוחה הוא מספר המשתמש שלו
                    ובכניסה לשלוחה אני עושה הפניה לפי ID ואז הוא שומע מה ששיך לו
                    זה במערכת, עכשיו שיטס שפשוט שואב את הלוג איך שהוא
                    ושם עוד גליון שמסדר אותו לפי הפרמטרים של בתאריך.... בוצעה העברה מ.... אל.... ע"ס... וכו'
                    ואז סקריפט שבעצם שולח את ההודעות לשתי השלוחות של המספרי משתמשים (לפי המספר משתמש הוא ידע לאיזה שלוחה לשלוח את זה...) כקובץ TTS .
                    עכשיו השאלה איך עושים את זה או איך מסבירים לבינה....

                    ע 2 תגובות תגובה אחרונה תגובה ציטוט 0
                    • ע
                      עידו @י.ע נערך לאחרונה על ידי

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

                      י 2 תגובות תגובה אחרונה תגובה ציטוט 0
                      • י
                        י.ע @עידו נערך לאחרונה על ידי י.ע

                        @עידו
                        אני ינסה....

                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • י
                          י.ע @עידו נערך לאחרונה על ידי

                          @עידו אני לא מצליח להסביר לו..... 😧
                          הוא טוען שאין אופציה שישאב את הנתונים לשיטס
                          ואני יודע שעשו את זה כאן בפורום

                          א ע 2 תגובות תגובה אחרונה תגובה ציטוט 0
                          • א
                            אA @י.ע נערך לאחרונה על ידי

                            @י-ע
                            אם איזו בינה אתה עובד? גימיני או GPT?

                            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • ע
                              עידו @י.ע נערך לאחרונה על ידי

                              @י-ע זה לא עובד ככה.
                              תביא לו תיעוד של פקודת הAPI שקוראת את הקובץ ותראה שהכל ישתנה

                              י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • י
                                י.ע @אA נערך לאחרונה על ידי

                                @אA ג'מיני פרו...

                                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • י
                                  י.ע @עידו נערך לאחרונה על ידי

                                  @עידו הבאתי לו את התיעוד API של ימות המשיח

                                  ע 2 תגובות תגובה אחרונה תגובה ציטוט 0
                                  • ע
                                    עידו @י.ע נערך לאחרונה על ידי

                                    @י-ע כתב בהקראה מקובץ אקסל:

                                    בעצם לפתוח שלוחת השמעת קבצים לכל משתמש שמספר השלוחה הוא מספר המשתמש שלו
                                    ובכניסה לשלוחה אני עושה הפניה לפי ID ואז הוא שומע מה ששיך לו

                                    זה שלוחת השמעה אישית שאמרתי...

                                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • ע
                                      עידו @י.ע נערך לאחרונה על ידי

                                      @י-ע https://f2.freeivr.co.il/post/84092

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • ע
                                        עידו @י.ע נערך לאחרונה על ידי

                                        @י-ע מה כתבת לו? בדיוק

                                        י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • י
                                          י.ע @עידו נערך לאחרונה על ידי

                                          @עידו
                                          אני צריך שישמע את כל ההיסטוריה
                                          אז זה טוב שהוא ישמע את כל ההודעות....

                                          ושלחתי לו
                                          הי

                                          שלום אני צריך קובץ גוגל שיטס שמתעדכן אונליין מקובצי YMGR מימות המשיח

                                          כמפורט בתיעוד המצורף...

                                          אני צריך שיתעדכן מהקובץ שנמצא בתיקייה Points שבשלוחה הראשית

                                          שם הקובץ points_log.2025-11

                                          מצרף לך את התיעוד ודוגמא מהקובץ....

                                          ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • ע
                                            עידו @י.ע נערך לאחרונה על ידי עידו

                                            @י-ע
                                            תכתוב לי לפי התיעוד הבא סקריפט לגוגל סקריפט שמושך דו"ח ומכניס אותו בצורה מסודרת לתוך שיטס

                                            הפקת דוח מקובץ ymgr
                                            הפקודה היא - RenderYMGRFile

                                            הפרמטרים הנדרשים

                                            פרמטר תיאור סוג הערות / דוגמא
                                            token טוקן string
                                            wath מיקום הקובץ במערכת string ivr2:/ymgtTest.ymgr
                                            convertType סוג הקובץ להנפקה. סוגים אפשריים: html / csv / json string רק במקרה של בקשת json תיהיה תגובה של json ממש. בשאר המקרים התגובה תיהיה הקובץ עצמו (Blob)
                                            notLoadLang האם לא להשתמש בקבצי שפה/תרגום לעמודות/ערכים 0/1 באם ערך זה הוא 1 התרגום יהיה נקי ומדוייק של הymgr ללא תוספות/הסתרות עמודות/שינויי שמות לעמודות. כבחירת מחדל מבצע תרגום גם שמבקשים json.
                                            renderLanguage שפת חיפוש תרגומים [A-Z] ניתן לבקש תרגום לפי שפה. בחירת מחדל HE.
                                            חישוב סדר המרת ותרגום עמודות:
                                            כל שלב דורס תרגום קודם באופן שהוא לא מוחק אותו אלא דורס תרגומים שיש עליהם הגדרה ספציפית.

                                            קובץ ראשי - יש תרגום כללי (בשרת של ימות המשיח).
                                            קובץ ספציפי (למשל, קובץ ל ApprovalAll)
                                            קובץ ברמת מערכת לפי השפה שנבחרה.. למשל מחפש קובץ: YMGRLangs\EN\ApprovalAll.ini
                                            קובץ ברמת מערכת - מחפש את שם הקובץ בסיומת ini בתוך תיקייה YMGRLangs שצריכה להיות תחת התיקיה הראשית של המערכת שבתוכה קובץ הini.
                                            קובץ ברמת שלוחה לפי השפה שנבחרה.. למשל מחפש קובץ: main\1\2\EN\ApprovalAll.ini
                                            קובץ בשלוחה - קובץ באותה השלוחה של קובץ הymgr עם סיומת ini.
                                            שימו לב! רמת שפה היא רמת מתחת קובץ ללא שפה. למשל, אם אני בוחר שפה EN אבל בקובץ בשלוחה לא בתיקיה של השפה יש לי ערכים המערכת תתחשב בתרגום שלהם.

                                            המענה בעת ההצלחה הוא הקובץ, כמו שנאמר, או במקרה של json:

                                            מאפיין סוג הסבר דוגמא
                                            responseStatus string סטטוס הפעולה OK
                                            yALogsVersion string גירסת מערכת
                                            data array מערך שמכיל את תוכן הקובץ
                                            במקרה של שגיאה השגיאה תפורט כתגובה בjson.
                                            בטח, בשמחה. על פי התיעוד שסיפקת, הכנתי עבורך סקריפט שתוכל להדביק ישירות בעורך הסקריפטים של Google Sheets.

                                            הסקריפט מבצע את הפעולות הבאות:

                                            1. מגדיר את כל הפרמטרים הדרושים (טוקן, נתיב קובץ וכו') במקום נוח לשינוי.
                                            2. שולח בקשה ל-API של "ימות המשיח" עם הפרמטרים שהוגדרו כדי לקבל את הדוח בפורמט JSON.
                                            3. מנתח את התשובה שקיבל.
                                            4. אם הבקשה הצליחה, הסקריפט מנקה את הגיליון הקיים, כותב את הכותרות של הדוח בשורה הראשונה, ואת כל הנתונים בשורות הבאות.
                                            5. במקרה של שגיאה, הוא ידפיס את השגיאה ללוגים של הסקריפט.

                                            קוד הסקריפט

                                            // =================================================================
                                            // הגדרות עיקריות - יש למלא את הפרמטרים בחלק זה
                                            // =================================================================
                                            
                                            // !!! יש להחליף לכתובת ה-API הנכונה של ימות המשיח
                                            const API_BASE_URL = "https://www.call2all.co.il/ym/api/RenderYMGRFile";
                                            
                                            // הזינו את הטוקן שקיבלתם ממערכת ימות המשיח
                                            const API_TOKEN = "0000000000000000000000"; // <--- יש להחליף לטוקן האמיתי שלכם
                                            
                                            // הזינו את הנתיב המדויק של קובץ ה-ymgr
                                            const FILE_PATH = "ivr2:/ymgtTest.ymgr"; // <--- יש להחליף לנתיב הקובץ שלכם
                                            
                                            // מהו סוג הפלט הרצוי? מומלץ להשתמש ב-json לעבודה עם סקריפטים
                                            const CONVERT_TYPE = "json";
                                            
                                            // האם לטעון קבצי שפה (0) או לקבל נתונים נקיים (1)?
                                            const NOT_LOAD_LANG = "1";
                                            
                                            // באיזו שפה להציג את התרגומים (אם משתמשים בהם)
                                            const RENDER_LANGUAGE = "HE";
                                            
                                            // שם הגיליון (Sheet) בתוך קובץ הגוגל שיטס אליו ייכנסו הנתונים
                                            const SHEET_NAME = "Report"; // <--- ודאו שקיים גיליון בשם זה או שנה את השם
                                            
                                            // =================================================================
                                            // סוף אזור ההגדרות - אין צורך לשנות את הקוד שבהמשך
                                            // =================================================================
                                            
                                            
                                            /**
                                             * פונקציה ראשית המושכת את הדוח ומכניסה אותו לגליון האלקטרוני
                                             */
                                            function fetchReportToSheet() {
                                              // הרכבת כתובת ה-URL המלאה עם כל הפרמטרים
                                              const params = {
                                                token: API_TOKEN,
                                                wath: FILE_PATH,
                                                convertType: CONVERT_TYPE,
                                                notLoadLang: NOT_LOAD_LANG,
                                                renderLanguage: RENDER_LANGUAGE
                                              };
                                              
                                              const queryString = Object.keys(params).map(key => key + '=' + encodeURIComponent(params[key])).join('&');
                                              const fullUrl = API_BASE_URL + "?" + queryString;
                                            
                                              try {
                                                // שליחת הבקשה לשרת
                                                const response = UrlFetchApp.fetch(fullUrl, { 'muteHttpExceptions': true });
                                                const responseText = response.getContentText();
                                                const data = JSON.parse(responseText);
                                            
                                                // בדיקה אם הסטטוס שהתקבל הוא 'OK'
                                                if (data.responseStatus !== 'OK') {
                                                  Logger.log("התקבלה שגיאה מהשרת: " + responseText);
                                                  throw new Error("API Error: " + data.responseStatus);
                                                }
                                            
                                                // קבלת הנתונים מתוך המערך 'data'
                                                const reportData = data.data;
                                            
                                                if (!reportData || reportData.length === 0) {
                                                  Logger.log("הדוח שהתקבל ריק, אין נתונים להוספה.");
                                                  return;
                                                }
                                            
                                                // קבלת הגיליון הפעיל ושם הגיליון הספציפי
                                                const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
                                                const sheet = spreadsheet.getSheetByName(SHEET_NAME);
                                                if (!sheet) {
                                                    throw new Error(`הגיליון בשם "${SHEET_NAME}" לא נמצא. יש ליצור אותו תחילה.`);
                                                }
                                            
                                                // ניקוי הגיליון לפני הכנסת הנתונים החדשים
                                                sheet.clear();
                                            
                                                // קבלת הכותרות (המפתחות) מהאובייקט הראשון במערך הנתונים
                                                const headers = Object.keys(reportData[0]);
                                            
                                                // יצירת מערך דו-מימדי עבור הנתונים, כולל שורת הכותרות
                                                const valuesToWrite = [headers]; // שורה ראשונה - כותרות
                                                
                                                reportData.forEach(rowObject => {
                                                  const rowValues = headers.map(header => rowObject[header]);
                                                  valuesToWrite.push(rowValues);
                                                });
                                            
                                                // כתיבת כל הנתונים לגיליון בבת אחת (פעולה יעילה יותר)
                                                sheet.getRange(1, 1, valuesToWrite.length, headers.length).setValues(valuesToWrite);
                                            
                                                Logger.log("הדוח נטען והוכנס לגיליון בהצלחה!");
                                            
                                              } catch (e) {
                                                Logger.log("חלה שגיאה כללית בתהליך: " + e.toString());
                                              }
                                            }
                                            

                                            הוראות שימוש:

                                            1. פתיחת עורך הסקריפטים:

                                              • פתחו את קובץ ה-Google Sheets שלכם.
                                              • בתפריט העליון, לחצו על Extensions (תוספים) > Apps Script.
                                            2. הדבקת הקוד:

                                              • ייפתח חלון חדש של עורך הסקריפטים.
                                              • מחקו את כל הקוד הקיים בקובץ Code.gs.
                                              • הדביקו את הקוד שסיפקתי למעלה.
                                            3. הגדרת פרמטרים:

                                              • עברו על החלק שנקרא הגדרות עיקריות בתחילת הקוד.
                                              • חובה: שנו את הערך של API_TOKEN לטוקן האישי שלכם.
                                              • חובה: ודאו שהערך של FILE_PATH הוא הנתיב המדויק לקובץ ה-ymgr שאתם רוצים למשוך.
                                              • ודאו ששם הגיליון ב-SHEET_NAME תואם לשם הגיליון בקובץ שלכם (לדוגמה: "Report"). אם לא קיים גיליון בשם זה, צרו אותו.
                                            4. שמירה והרצה:

                                              • לחצו על סמל השמירה (דיסקט) כדי לשמור את הפרויקט.
                                              • כדי להריץ את הסקריפט, ודאו שהפונקציה fetchReportToSheet נבחרה בתפריט הבחירה שליד כפתור ה-Debug, ולחצו על Run.
                                            5. אישור הרשאות (בפעם הראשונה בלבד):

                                              • בפעם הראשונה שתריצו את הסקריפט, Google יבקש מכם הרשאות.
                                              • לחצו על Review permissions, בחרו את חשבון הגוגל שלכם.
                                              • ייתכן שתופיע אזהרה "Google hasn't verified this app". לחצו על Advanced (מתקדם) ולאחר מכן על Go to (your project name) (unsafe).
                                              • אשרו את ההרשאות שהסקריפט מבקש (גישה ל-Sheets וגישה לשירותים חיצוניים).

                                            לאחר שתאשרו, הסקריפט ירוץ וימשוך את הנתונים מה-API ישירות לתוך הגיליון שהגדרתם. תוכלו לראות את התקדמות התהליך והודעות שגיאה (אם ישנן) בלחיצה על Execution log (יומן ריצה) בעורך הסקריפטים.

                                            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                            • פוסט ראשון
                                              פוסט אחרון