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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. HTML איפוס נתוני טבלה

HTML איפוס נתוני טבלה

מתוזמן נעוץ נעול הועבר תכנות
16 פוסטים 3 כותבים 289 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבי 203א מנותק
    אבי 203א מנותק
    אבי 203
    השיב לOdedDvir ב נערך לאחרונה על ידי
    #3

    @odeddvir ואיייי! אין לך מושג כמה עזרת לי!
    הדבר הזה עשה לי תקלות של הרבה כסף... (משלוחים כפולים. וד"ל.)

    אגב אולי תדע גם למה הקובץ תמיד אומר לי תבנית הקובץ והסיומת XLS אינן תואמות. ואז אני צריך לאשר לו לפתוח בכל זאת וזה נפתח. אולי זה גם מילה לא נכונה או כבר בחבילה.

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לאבי 203 ב נערך לאחרונה על ידי
      #4

      @אבי-203 זו סיומת של אקסל מיושן.
      נסה אולי להחליף את סיומת הקובץ בשורה 56 ל xlsx:

      link.setAttribute("download", "export.xlsx");
      
      אבי 203א תגובה 1 תגובה אחרונה
      0
      • אבי 203א מנותק
        אבי 203א מנותק
        אבי 203
        השיב לOdedDvir ב נערך לאחרונה על ידי
        #5

        @odeddvir חבל.. לא עבד. עכשיו הוא כבר כותב שזה לא תואם הסיומת וסוג הקובץ ולא נפתח.
        אולי זה כבר משהו שהחבילה פשוט ישנה.

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          השיב לאבי 203 ב נערך לאחרונה על ידי OdedDvir
          #6

          @אבי-203 מגיגול קצר נראה שאתה צריך לעבד קצת את הנתונים כדי שהקובץ יצא תקין.
          נסה לבצע את השינויים הבאים:
          שורה 53:

            var html = table.outerHTML.replace(/ /g, '%20');
          

          ובשורה 55:

          var blob = new Blob(['\ufeff', html], {
          

          מקור
          אגב, תחזיר את הסיומת הישנה.

          אבי 203א תגובה 1 תגובה אחרונה
          2
          • אבי 203א מנותק
            אבי 203א מנותק
            אבי 203
            השיב לOdedDvir ב נערך לאחרונה על ידי אבי 203
            #7

            @odeddvir אמר בHTML איפוס נתוני טבלה:

            var blob = new Blob(['\ufeff', html], {

            לאאא זה חיבר את כל השדות למשבצת אחת.... 😞
            אולי לא עשיתי טוב..

            <html>
            <head>
            <script>
                var myList=[];
                window.onmessage = function(event){
                if (event.data) {
                  myList = event.data;
                  if (myList.length>0) {
                    buildHtmlTable();
                  }
                }
                else {
                  myList = [];
                }
              };
             function buildHtmlTable() {
                 var columns = addAllColumnHeaders(myList);
             
                 for (var i = 0 ; i < myList.length ; i++) {
                     var row$ = $('<tr/>');
                     for (var colIndex = 0 ; colIndex < columns.length ; colIndex++) {
                         var cellValue = myList[i][columns[colIndex]];
             
                         if (cellValue == null) { cellValue = ""; }
             
                         row$.append($('<td/>').html(cellValue));
                     }
                     $("#excelDataTable").append(row$);
                     
                 }
                 return exportF(); // Make Excel file download now
             }
             function addAllColumnHeaders(myList)
             {
                 var columnSet = [];
                 var headerTr$ = $('<tr/>');
             $("#excelDataTable tr").remove();
            
                 for (var i = 0 ; i < myList.length ; i++) {
                     var rowHash = myList[i];
                     for (var key in rowHash) {
                         if ($.inArray(key, columnSet) == -1){
                             columnSet.push(key);
                             headerTr$.append($('<th/>').html(key));
                         }
                     }
                 }
                 $("#excelDataTable").append(headerTr$);
             
                 return columnSet;
             }
             function exportF() {
              var table = document.getElementById("excelDataTable");
               var html = table.outerHTML.replace(/ /g, '%20');
            
             
            var blob = new Blob(['\ufeff', html], {
                type: "application/vnd.ms-excel;charset=utf-8"
            });
            var url = URL.createObjectURL( blob );
              var link = document.getElementById("downloadLink");
              link.setAttribute("href", url);
              link.setAttribute("download", "export.xls"); // Choose the file name here
              link.click(); // Download your excel file   
              return false;
            }
             </script>
            </head>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
             
            <body onLoad="">
                <table id="excelDataTable" border="1">
                 </table>
                 <a style="display: none" id="downloadLink"></a>
            </body>
             
            </html>
            
            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לאבי 203 ב נערך לאחרונה על ידי OdedDvir
              #8

              @אבי-203 עשית מצוין, אני הבעייתי, זה מה שקורה כשמעתיקים קוד בלי לחשוב...🤦
              האם הקובץ נפתח ללא התראה? אם כן, תוותר על השינוי בשורה 54 (כעת אני משער שהוא יותר מתאים לקובץ CSV) ותנסה להשאיר רק את השינוי בשורה 57.

              אבי 203א תגובה 1 תגובה אחרונה
              0
              • אבי 203א מנותק
                אבי 203א מנותק
                אבי 203
                השיב לOdedDvir ב נערך לאחרונה על ידי
                #9

                @odeddvir ביצעתי, לא רואה הבדל שני האפשריות מורידות אותו קובץ אותה הערת אזהרה.
                ושניהם תקינים

                yossizY תגובה 1 תגובה אחרונה
                0
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  השיב לאבי 203 ב נערך לאחרונה על ידי yossiz
                  #10

                  @אבי-203 אתה מייצר טבלת HTML ונותן לו סיומת של קובץ אקסל. לכן יש אזהרה. תפסיק לשקר למשתמש והאזהרה תפסיק 🙂
                  (אני לא באמת אומר להפסיק לשקר. אם תתן סיומת HTML זה לא ייפתח באקסל. אבל לא סביר לצפות לפתרון כל כמה שהאזהרה נכונה.)
                  יש דרכים ליצור קבצי אקסל אמיתיים בדפדפן ואז לא יהיה לך אזהרה.

                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                  אבי 203א תגובה 1 תגובה אחרונה
                  6
                  • אבי 203א מנותק
                    אבי 203א מנותק
                    אבי 203
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #11
                    פוסט זה נמחק!
                    תגובה 1 תגובה אחרונה
                    0
                    • אבי 203א מנותק
                      אבי 203א מנותק
                      אבי 203
                      השיב לOdedDvir ב נערך לאחרונה על ידי
                      #12

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

                      <html>
                      <head>
                      <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
                      <style>
                      </style>
                      <canvas id="myChart" width="400" height="150"></canvas>
                      <script>
                      window.onmessage = function(event){
                        if (event.data) {
                            makeChart(event.data);
                      }else {
                           makeChart(["טוען...":"טרם התקבלו נתונים"]);
                          
                        };
                      };
                      function makeChart(dataValues) {
                        $("#myChart").remove();
                      var ctx = document.getElementById('myChart').getContext('2d');
                      var chart = new Chart(ctx, {
                          // The type of chart we want to create
                          type: 'line',
                      
                          // The data for our dataset
                          data: {
                              labels:dataValues.days,
                              datasets: [{
                                  label: 'סך תרומות מעל 2',
                                  backgroundColor: 'rgb(156, 137, 158)',
                                  borderColor: 'rgb(156, 137, 15)',
                                  data: dataValues.camut
                              },{
                                  label: 'סך תרומות יומי',
                                  backgroundColor: 'rgb(174, 27, 55)',
                                  borderColor: 'rgb(174, 27, 55)',
                                  data: dataValues.cardsday
                              },{
                                  label: 'סך כרטיסים יומי',
                                  backgroundColor: 'rgb(29, 120, 77)',
                                  borderColor: 'rgb(29, 120, 77)',
                                  data: dataValues.cardtrumot
                              },{
                                  label: 'סך סוכנים',
                                  backgroundColor: 'rgb(175, 134, 210)',
                                  borderColor: 'rgb(175, 134, 210)',
                                  data: dataValues.sochen
                              },{
                                  label: 'סך כרטיסים',
                                  backgroundColor: 'rgb(126, 214, 118)',
                                  borderColor: 'rgb(126, 214, 118)',
                                  data: dataValues.cards
                              }]
                          },
                      
                          // Configuration options go here
                          options: {}
                      });
                      }
                      </script>
                      </head>
                      <!-- <body style="background-Color:#ffffff">
                      <canvas id="myChart"></canvas>
                      </body> -->
                      </html>
                      
                      OdedDvirO תגובה 1 תגובה אחרונה
                      0
                      • OdedDvirO מנותק
                        OdedDvirO מנותק
                        OdedDvir
                        השיב לאבי 203 ב נערך לאחרונה על ידי
                        #13

                        @אבי-203 אין לי ניסיון עם Chart.js, אבל מחיפוש פשוט בדוקומנטציה שלהם, נראה לי שעליך להשתמש במתודה ()clear כדי לנקות את הנתונים, או במתודה ()destroy, כשבאחרון תצטרך ליצור מופע חדש בכל פעם.

                        אבי 203א תגובה 1 תגובה אחרונה
                        0
                        • אבי 203א מנותק
                          אבי 203א מנותק
                          אבי 203
                          השיב לOdedDvir ב נערך לאחרונה על ידי
                          #14

                          @odeddvir אמר בHTML איפוס נתוני טבלה:
                          זה באמת משבית לי הכל שום דבר לא מוצג כעת.

                          <html>
                          <head>
                          <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
                          <style>
                          </style>
                          <canvas id="myChart" width="400" height="150"></canvas>
                          <script>
                          window.onmessage = function(event){
                            if (event.data) {
                                makeChart(event.data);
                          }
                            
                          };
                          function makeChart(dataValues) {
                            var ctx = document.getElementById('myChart').getContext('2d');
                           var chart.destroy();
                            var chart=[];
                          var chart = new Chart(ctx, {
                              // The type of chart we want to create
                              type: 'line',
                          
                              // The data for our dataset
                              data: {
                                  labels:dataValues.days,
                                  datasets: [{
                                      label: 'סך תרומות מעל 2',
                                      backgroundColor: 'rgb(156, 137, 158)',
                                      borderColor: 'rgb(156, 137, 15)',
                                      data: dataValues.camut
                                  },{
                                      label: 'סך תרומות יומי',
                                      backgroundColor: 'rgb(174, 27, 55)',
                                      borderColor: 'rgb(174, 27, 55)',
                                      data: dataValues.cardsday
                                  },{
                                      label: 'סך כרטיסים יומי',
                                      backgroundColor: 'rgb(29, 120, 77)',
                                      borderColor: 'rgb(29, 120, 77)',
                                      data: dataValues.cardtrumot
                                  },{
                                      label: 'סך סוכנים',
                                      backgroundColor: 'rgb(175, 134, 210)',
                                      borderColor: 'rgb(175, 134, 210)',
                                      data: dataValues.sochen
                                  },{
                                      label: 'סך כרטיסים',
                                      backgroundColor: 'rgb(126, 214, 118)',
                                      borderColor: 'rgb(126, 214, 118)',
                                      data: dataValues.cards
                                  }]
                              },
                          
                              // Configuration options go here
                              options: {}
                          });
                          }
                          </script>
                          </head>
                          <!-- <body style="background-Color:#ffffff">
                          <canvas id="myChart"></canvas>
                          </body> -->
                          </html>
                          
                          OdedDvirO תגובה 1 תגובה אחרונה
                          0
                          • OdedDvirO מנותק
                            OdedDvirO מנותק
                            OdedDvir
                            השיב לאבי 203 ב נערך לאחרונה על ידי
                            #15

                            @אבי-203 יש כאן בעיה בקוד.
                            השורות:

                            var chart.destroy();
                            var chart=[];
                            var chart = new Chart(ctx, { ....
                            

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

                            צור את האובייקט פעם אחת ויחידה בתוך הפונקציה.
                            לכאורה כך אמור לעבוד:

                            const ctx = document.getElementById('myChart').getContext('2d');
                            ....
                            function makeChart(dataValues) {
                              const chart = new Chart(ctx, { ....
                            
                            אבי 203א תגובה 1 תגובה אחרונה
                            1
                            • אבי 203א מנותק
                              אבי 203א מנותק
                              אבי 203
                              השיב לOdedDvir ב נערך לאחרונה על ידי אבי 203
                              #16

                              @odeddvir תודה על העזרהההה
                              זה לא הרס, כלומר גם המבנה שהצעת עובד תקין.
                              אבל מענין הבעיה לא נפתרה, נוצר לי הרושם ממה ש"הבנתי" בתיעוד שצריך באמת להשתמש עם המחיקת נתונים או האיפוס שהבאת מקודם, רק לא הצלחתי לאפס...

                              תגובה 1 תגובה אחרונה
                              0

                              בא תתחבר לדף היומי!
                              • התחברות

                              • אין לך חשבון עדיין? הרשמה

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