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

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

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

js - בעיה בקידוד CSV שיתמוך בעברית באקסל

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

    אני משתמש בקוד הבא כדי לייצא למשתמש את תוכן טבלה בדף למסמך csv, אבל תווים עבריים מוצגים באקסל כג'יבריש, ניסיתי לקודד כANSI (או Windows-1255), אבל זה עדיין יורד כUTF-8 ומוצג כג'יבריש

    פתרונים? הפונקציה צריכה לרוץ בצד הלקוח, ועדיף ללא ספריות וכו'.

            function exportToCSV() {
                let csvContent = "data:text/csv;charset=ANSI,";
                const rows = document.querySelectorAll('#table-report-sales tr');
    
                rows.forEach(row => {
                    const rowData = [];
                    row.querySelectorAll('th, td').forEach(cell => {
                        rowData.push(`"${cell.textContent}"`);
                    });
                    csvContent += rowData.join(',') + '\n';
                });
    
                //const encodedUri = encodeURI(csvContent);
                const encodedUri = encodeURI(`data:text/csv;charset=ANSI,${csvContent}`);
                const link = document.createElement("a");
                link.setAttribute("href", encodedUri);
                link.setAttribute("download", "sales_report.csv");
                document.body.appendChild(link);
                link.click();
            }
    

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      UTF-8 זה מעולה, תשאיר את זה.
      כל מה שצריך לעשות כדי שאקסל יפתח את זה כמו שצריך זה להוסיף בהתחלה BOM,
      תכניס לcsvContent בתחילתו את הטקסט הזה: "\uFEFF", זה קוד בתים של BOM שמיידע שהקובץ הוא utf-8.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      7
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

        הקוד קצת מסורבל וטיפונת שגוי, אז שיפרתי אותו:

        function exportToCSV() {
            const rows = [...document.querySelectorAll('#table-report-sales tr')];
            const singleRow = (e) => [...e.querySelectorAll('th, td')].map(x => x.innerText).join(',');
            const csvContent = '\uFEFF' + rows.map(singleRow).join('\n');
        
            const link = document.createElement("a");
            link.setAttribute("href", 'data:text/csv; charset=utf-8,' + encodeURI(csvContent));
            link.setAttribute("download", "sales_report.csv");
            document.body.appendChild(link);
            link.click();
        }
        

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

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

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

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