קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ Javascript ♦ המרה של אקסל למערך וממערך חזרה לאקסל בעזרת JS

המרה של אקסל למערך וממערך חזרה לאקסל בעזרת JS

עידן יצחקי 24 באפריל 2021 אין תגובות

אקסל (excel) יכול לשמש הרבה פעמים כמקור לנתונים ולכן אנחנו עלולים להידרש להמיר קובץ אקסל למערך על מנת להשתמש בו לאתר שלנו.

מיד נראה איך עושים את זה (ובקלילות)

תחילה נעשה קריאת HTTP לשרת כדי לקבל את הקובץ (אם הקובץ מקומי אז כמובן שאפשר לדלג על השלב הזה)

loto.xhttpGetCsv = function() {
    var xhttp = new XMLHttpRequest();
    var data;
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            data = this.responseText;
            loto.init(data);
        }

    }
    xhttp.open("GET", 'Lotto.csv', true);
    xhttp.send();
}
loto.xhttpGetCsv();

קצת הסברים:

האוביקט הגלובלי שלנו הוא loto, במקרה הזה אני עושה קריאה לקובץ מקומי בפרויקט בשם lotto.csv,

ברגע שהתוכן מגיע, מפעילים פונקציה בשם init ושולחים לה את כל המידע שהגיע.

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

משהו שנראה כך : [ [ ], [ ], [ ], [ ], [ ] ]. בסופו של דבר נעבור על כל מערך ונחזיר אוביקט שמכיל:

מספר הגרלה, תאריך הגרלה, מערך של כל המספרים ללא המספר הנוסף וכמובן בסוף את המספר הנוסף.

loto.init = function(data) {
    // -------------- convert text to object array ------
    var text2arr = data.trim().split('\n');
    text2arr = text2arr.map(item => {
        return item.split(','); // [1234,16/4/2015,1,2,3,4,5,6,7]
    }).map(item => {
        return {
            lotoNum: item[0],
            date: item[1],
            numbers: item.slice(2, 8),
            extra: item[8],
        }
    });
}

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

לכיוון ההפוך: ממערך לקובץ אקסל

var data = [
    ["Col1", "Col2", "Col3", "Col4"],
    ["Data", 50, 100, 150],
    ["Data", -50, -20, '100%'],
];

loto.exportToCsv = function() {
    var CsvString = "";
    data.map(item => {
        item.map(subItem => {
            CsvString += subItem + ',';
        });
        CsvString += "\n";
    });
    CsvString = "data:application/csv," + encodeURIComponent(CsvString);
    var anchor = document.createElement("A");
    anchor.setAttribute("href", CsvString);
    anchor.setAttribute("download", "somedata.csv");
    document.body.append(anchor);
    anchor.click();
}

בקצרה, יצרנו את data שמחזיק את הנתונים שלנו. במקרה הזה מדובר במערך של מערכים אבל אפשר גם מערך של אוביקטים.

אחרי זה הוספנו פונקציה שמשרשרת את המידע ל-string אחד ארוך כאשר ההפרדות בין תאים זה פסיק ובין שורות זה "\n"

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

לא לשכוח להפעיל את הפונקציה exportToCsv על ידי לחצת כפתור כדי שמשהו יקרה😄

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

פוסטים קשורים:

תמונת אווירה של תקשורתפונקצית קריאה מ-JS ל-API בסיסית (XMLHttpRequest) תמונת אווירה של קוביות ואת מוזהבתמדריך javascript למתחיל 101 (שיטת כתיבה) תמונת אווירה של עוגיות במחשבעוגיות (Cookies) ליצור ולבדוק ב-JS תמונת אווירה של בית פאזלאיך לעבור בלולאה על מאפיינים של אובייקט
javascript

אודות המחבר

עידן יצחקי להציג את כל הפוסטים של עידן יצחקי


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 תגובה אחת
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד
דילוג לתוכן
פתח סרגל נגישות כלי נגישות

כלי נגישות

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