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

    עזרה בקוד גוגל סקריפט של יבוא קובץ YMGR לשיטס

    פורום מפתחים API
    1
    1
    151
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ה
      הרב מומחה נערך לאחרונה על ידי

      אני צריך לייבא קובץ ymgr (קובץ html) לטבלת גוגל שיטס בדומה לנוסחה IMPORTHTM בגוגל שיטס
      אני מעדיף את זה דרך סקריפט כי בנוסחה זה הרבה פעמים נתקע וכל הזמן הזה אין לי את התוכן הקודם ועוד הרבה יתרונות
      בפועל הקוד הזה מוחק את התוכן הקודם בטבלה ובלוג הוא מדפיס את הטבלה רק הוא לא מכניס את הטבלה המיובאת לשיטס
      אודה מאוד למי שיוכל להאיר את עיני

      function importAndSortData() {
        // מציג את הגישה לגיליון הפעיל באפליקציית גיליון האלקטרוני של Google.
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        
        // מגדיר את ה-URL שיכיל את המידע שיש לייבא ולמיין.
        var url = "https://call2all.co.il/ym/api/RenderYMGRFile?wath=ivr2:Log/LogQueueAll.2023-06-12.ymgr&convertType=html¬LoadLang=0&token=igWGG9ZLy2fe";
      
        // מציג את ה-URL בלוג.
        Logger.log("URL: " + url);
      
        // מבצע בקשת HTTP GET לכתובת ה-URL ומקבל את התגובה.
        var response = UrlFetchApp.fetch(url);
        var content = response.getContentText();
      
        // מציג את תוכן התגובה בלוג.
        Logger.log("תוכן התגובה: " + content);
      
        // מוצא את מיקום התחלת הטבלה בתוך תוכן התגובה.
        var tableStartIndex = content.indexOf("<table");
        // מוצא את מיקום סיום הטבלה בתוך תוכן התגובה.
        var tableEndIndex = content.indexOf("</table>");
      
        // מציג את מיקום התחלת הטבלה ומיקום סיום הטבלה בלוג.
        Logger.log("מיקום תחילת הטבלה: " + tableStartIndex);
        Logger.log("מיקום סיום הטבלה: " + tableEndIndex);
      
        // אם לא נמצאה טבלה תקינה בתוך התוכן שהתקבל, מזריק שגיאה.
        if (tableStartIndex === -1 || tableEndIndex === -1) {
          throw new Error("לא נמצאה טבלה תקינה בתוך התוכן שהוזן");
        }
      
        // חותך את קוד ה-HTML של הטבלה מתוך תוכן התגובה.
        var tableHtml = content.substring(tableStartIndex, tableEndIndex + 8);
      
        // מציג את קוד ה-HTML של הטבלה בלוג.
        Logger.log("קוד ה-HTML של הטבלה: " + tableHtml);
      
        // מנתח את קוד ה-HTML ומקבל את האיבר הראשי של הטבלה.
        var table = XmlService.parse(tableHtml).getRootElement();
        var rows = table.getChildren("tr");
      
        var data = [];
      
        // לולאה על כל שורה בטבלה.
        for (var i = 0; i < rows.length; i++) {
          var cells = rows[i].getChildren("td");
          var rowData = [];
      
          // לולאה על כל תא בשורה.
          for (var j = 0; j < cells.length; j++) {
            var cellValue = cells[j].getText();
            rowData.push(cellValue);
          }
      
          data.push(rowData);
        }
      
        // מציג את הנתונים לפני המיון בלוג.
        Logger.log("נתונים לפני המיון: " + JSON.stringify(data));
      
        // ממיין את הנתונים לפי תוכן התא השני בכל שורה.
        var sortedData = data.sort(function(a, b) {
          var valueA = a[2];
          var valueB = b[2];
      
          if (typeof valueA === "string") {
            valueA = valueA.toLowerCase();
          }
      
          if (typeof valueB === "string") {
            valueB = valueB.toLowerCase();
          }
      
          if (valueA < valueB) {
            return -1;
          }
      
          if (valueA > valueB) {
            return 1;
          }
      
          return 0;
        });
      
        // מציג את הנתונים לאחר המיון בלוג.
        Logger.log("נתונים ממוינים: " + JSON.stringify(sortedData));
      
        // מנקה את כל התוכן בגיליון.
        sheet.getDataRange().clearContent();
      
        // מכניס את הנתונים הממוינים לגיליון מהתא A1 והלאה.
        if (sortedData.length > 0) {
        var numRows = sortedData.length;
        var numColumns = sortedData[0].length;
        sheet.getRange(1, 1, numRows, numColumns).setValues(sortedData);
        }
      
      
        // הודעת רישום
        var executionTime = new Date();
        var functionName = "importAndSortData";
        var logMessage = "פונקציה " + functionName + " בוצעה בהצלחה בתאריך " + executionTime + ".";
        Logger.log(logMessage);
      
        // מציג את הנתונים הממוינים בלוג.
        Logger.log("נתונים ממוינים: " + JSON.stringify(sortedData));
      
        // מציג את טווח הנתונים בגיליון בלוג.
        Logger.log("טווח הנתונים: " + sheet.getDataRange().getA1Notation());
      }
      
      
      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • פוסט ראשון
        פוסט אחרון