02/01/2018

איך לכווץ קובץ אקסל עם הרבה מידע בעשרות אחוזים?


איך לכווץ קובץ אקסל עם הרבה מידע בעשרות אחוזים?



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

בבדיקה שאני בצעתי באופן אישי, לקחתי קובץ אקסל בעבודה בגודל של 15 מגה בייט (לכאורה לא גדול כל כך) והחלטתי לנסות לפתוח אותו על דיסק SSD (למי שלא ממש מבין בנושא, מדובר בדיסק מאוד מהיר, אשר ידוע גם בתור Solid State drive, או בצורה קצת יותר פשוטה, בערך "דיסק און קי" רק במימדים מאוד גדלוים) ועדיין לקח לי 3 דקות שלמות.

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

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

תתארו לעצמכם לפתוח קובץ של 70 מגה בייט מתוך כונן ברשת כשמהירות העבודה הממוצעת בכל משרד קטן לדוגמא היא 100 מגה בייט (זאת אומרת שמהירות ההורדה והעלאה לרשת היא במהירות של 12 מגה בייט לכל היותר שזה לא ממש מהר בימים אלו), ולא כמו חברות וארגונים גדולים כששם החיבור הוא 1 גיגה בייט (1000 מגה בייט - מה שבפועל נותן מהירות הורדה והעלאה לשרת במהירות של 100 מגה בייט, שזה כבר שינוי משמעותי בעבודה, ומאוד מורגשת אני חייב לציין).

להלן דוגמא לקבצי אקסל גדולים - בגודל של 6,5,4 ואפילו מעל ל-10 מגה בייט.



קבצי אקסל גדולים - 4 מגה בייט ומעלה
פתיחת הקובץ לוקחת זמן יקר



אז למה בעצם לוקח למחשב כל כך הרבה זמן לפתוח את הקבצים האלה?
הינה הסבר קצר, קבצי אקסל ישנים היו נשמרים בפורמט של XLS שזה פורמט אקסל רגיל שאנחנו מכירים, בשנת 2007 מיקרוסופט הפכו את הפורמט הרגיל שלהם לקבצי XML והסיומת השתנתה ל XLSX מה שהפך את המשמעות ל" XLS שנשמר בשפת XML"

לידע כללי:
כעקרון שפת XML היא שפת תכנות שיחסית נוחה לתכנות מבחינת הקריאה, זאת אומרת היא מיועדת להקל על האדם בקריאת השפה והתכנות בה, מה שמסבך את העיניינם עבור המחשב מכיוון שהמחשב קורא את הכל בשפה הבינארית זאת אומרת בכל מיני צורות של 0 ו-1.

אז מה אתה מנסה להגיד? - איך אפשר לשפר את העבודה?
אילו היינו שומרים את הקובץ בשפה שבה המחשב מצליח לקרוא אותו בצורה הרבה יותר יעילה, הקבצים היו נפתחים ונשמרים הרבה יותר מהר - "פה קבור הכלב" ! וזה מה שאנחנו הולכים ללמוד לעשות, לשמור את הקבצים בצורה בינארית.

להלן דוגמא של קובץ בגודל של 70 מגה בייט שהתקבץ ל-30 מגה בייט.


קבצי אקסל ממש גדולים לאחר שינוי ושמירה בצורת Binary - הקובץ התקווץ בחצי


אז איך עושים את זה בעצם?
לצורך שמירת הקובץ בפורמט הרצוי, לאחר שסיימנו את העבודה בתוך האקסל, נלחץ על "קובץ" ולאחר מכן "שמור בשם" ולאחר מכן "עיון" באותו הרגע תופיע לנו אפשרות לשמור את הקובץ בסיומת הרצויה, הסיומת שאנחנו מחפשים
 היא סיומת בשם XLSB כפי שניתן לראות בדוגמא:



לאחר השינוי, הקובץ שלכם ישמר עם הסיומת XLSB ויכתב עלידו "Microsoft Excel Binary Worksheet"

כמובן שמהירות העבודה (פתיחה, שמירה וכד') על הקובץ ישתפרו לכם פלאים, מהבדיקה שלי, המהדורה הכי ישינה שיכולה לפתוח את הקבצים היא אופיס 2010 (לא היתה לי אפשרות לבדוק על 2007).

לכל שאלה או כל נושא אחר ניתן לפנות אלי במייל: levl@leidertech.co.il

להלן מדריך מצולם:

8 תגובות:

  1. נעזרתי בזה עובד יופי
    בגוגל shits זה לא נפתח
    שמרתי באקסל מחדש לקובץ רגיל וזה נשאר בגודל המוקטן
    חבל על הזמן
    תודה רבה

    השבמחק
  2. גדול ! ביצעתי על קובץ בן 22 מגה, והוא התכווץ בחמישים אחוז.
    מבחינת הביצועים (חישובים ונוסחאות) - אני לא צפוי לאכזבות ?
    ומה היתה בעצם המטרה לעבור ל xml ? מה היתרונות של זה ?

    השבמחק
    תשובות
    1. היי,
      המטרה היתה לכווץ את גודל הקובץ.

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

      מחק
  3. מעולה! פתרת לי בעיה, תודה!

    השבמחק

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

תודה :)