טבלת CSV (.csv)
RFC תקןComma-Separated Values (CSV) הוא פורמט טקסט פשוט ונפוץ לנתונים טבלאיים, שבו כל שורה מייצגת רשומת נתונים והשדות מופרדים בתווי הפרדה.
המר XLSX ל-CSV
ממיר חינמי מ-XLSX ל-CSV פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
כיווץ CSV אונליין
פרטי - הקבצים לעולם אינם עוזבים את המכשיר שלך
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי CSV על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי CSV על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
אין חתימה קבועהייצוג ASCII: בתים של טקסט; הקידוד משתנה (לעיתים קרובות UTF-8)
תקינה: RFC 4180 / IETF
מפרט טכני
| מבנה המכולה | קובץ טקסט שטוח ומופרד המייצג שורות ועמודות של נתונים טבלאיים |
| דחיסה | Gzip ו-Deflate יכולים לדחוס טקסט חוזר; גודל התוצאה תלוי בנתונים ובהגדרות. |
| סדר בתים (Endianness) | זרם טקסט מסוג UTF-8 (שימוש אופציונלי ב-UTF-8 BOM EF BB BF על ידי Excel) |
| מרחבי צבע | לא רלוונטי |
| ערוצים ומבנה | רשומות שורה המופרדות ב-CRLF ועמודות המופרדות בפסיקים |
| ממדים מרביים | ללא הגבלה; ניתן להזרמה לג'יגה-בייט בלי טעינת הקובץ המלא בזיכרון |
| שקיפות | לא רלוונטי |
| הזרמה ופרוגרסיביות | כל צינורות עיבוד הנתונים תומכים בעיבוד זרם מובנה, שורה אחר שורה |
מטריצת השוואה טכנית: CSV מול מתחרים
| תכונה טכנית | CSV (נוכחי) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| סוג קובץ | טבלה שטוחה של טקסט פשוט | גיליון אלקטרוני מסוג XML מכווץ | אחסון טבלאי בינארי | טקסט היררכי |
| גיליונות מרובים | לא (טבלה שטוחה בודדת בלבד) | כן (חוברות עבודה וגיליונות מרובים) | אחסון מבוסס מחיצות | מערכים ואובייקטים מקוננים |
| סוגי נתונים | טקסט גולמי ללא טיפוסים | תאים עם טיפוסים, נוסחאות, עיצוב | טיפוסי עמודות בינאריים קפדניים | טיפוסים פרימיטיביים (מחרוזת, מספר, בוליאני) |
| אנליטיקת ביג דאטה | איטי (דורש קריאת כל שורה באופן ליניארי) | לא מתאים לביג דאטה | מהיר מאוד (בחירת עמודות ודחיפת תנאים) | בינוני |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
עמודות זזות ימינה או ספירות השורות אינן תואמות.
גורם שורש: שדה טקסט המכיל פסיק שלא טופל באמצעות escape ואינו מוקף במרכאות.
שחזור: RFC 4180 דורש ששדות המכילים פסיקים יהיו עטופים במרכאות כפולות: "Smith, John".
תווים מוטעמים מוצגים כסמלים מוזרים (מוג'יבאקה כמו é במקום é) ב-Excel.
גורם שורש: Excel פתח CSV מסוג UTF-8 בהנחה של קידוד התווים הישן Windows ANSI/CP1252.
שחזור: הוסף בתחילת הקובץ את סימן סדר הבייטים של UTF-8 באורך 3 בייטים (0xEF 0xBB 0xBF).
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
קבצי CSV נפתחים ישירות בתוכנות גיליונות אלקטרוניים כמו Excel ו-Google Sheets, וחושפים משתמשים להתקפות הזרקת נוסחאות (הזרקת CSV).
ווקטורי תקיפה ידועים
- הזרקת נוסחאות: תאים המתחילים ב-'=', '+', '-' או '@' המריצים מאקרו של גיליון אלקטרוני או פקודות DDE (לדוגמה '=cmd|' /C calc'!A0').
- הוצאת נתונים באמצעות נוסחאות HYPERLINK() השולחות נתוני תאים רגישים לשרתי תוקף מרוחקים בעת לחיצה.
שיטות מומלצות להגנה: בעת ייצוא נתוני משתמש ל-CSV, הוסף גרש (') או טאב לפני כל תא המתחיל ב-'=', '+', '-' או '@' כדי לכפות הצגת טקסט פשוט ב-Excel.
היסטוריה ואבני דרך
יתרונות מרכזיים
- פשטות מרבית: קריא בכל עורך טקסט וניתן לייבוא לכל מסד נתונים וגיליון אלקטרוני.
- הזרמה מהירה במיוחד שורה אחר שורה מבלי לבנות DOM מלא בזיכרון.
- תקורה מינימלית: ללא תחביר תגים מפורט או הגדרות סכמה.
מגבלות טכניות וחסרונות
- אין סוגי נתונים סטנדרטיים: מספרים, תאריכים, בוליאנים וטקסט נשמרים כולם כמחרוזות גולמיות.
- אין תמיכה בגיליונות מרובים, עיצוב תאים, נוסחאות או מטא-נתונים.
- התנגשויות של תווי הפרדה (פסיקים בתוך טקסט, פסיקים עשרוניים באזורים אירופיים) גורמות לעיתים קרובות לשגיאות בפענוח.
עובדות טכניות מעניינות
- במדינות אירופאיות רבות שבהן משתמשים בפסיקים כנקודות עשרוניות, משתמשים בנקודה-פסיק (;) במקום בפסיקים כמפרידי CSV.
- Microsoft Excel דרש בעבר UTF-8 BOM (0xEF 0xBB 0xBF) כדי להציג כראוי תווים מוטעמים שאינם ASCII.
- שירות הבריאות הלאומי בבריטניה איבד כמעט 16,000 רשומות של איתור מגעים של COVID-19 בשנת 2020, מכיוון שהנתונים יובאו לפורמט גיליון אלקטרוני מיושן של Excel, שהגביל את מספר השורות ל-65,536.
שאלות טכניות נפוצות
מהו RFC 4180?
RFC 4180 הוא תקן ה-IETF הרשמי עבור CSV. הוא מחייב ששדות המכילים פסיקים, מעברי שורה או מרכאות כפולות יהיו סגורים במרכאות כפולות, ושמרכאות פנימיות יעברו בריחה על ידי כפילתן ("").
מדוע קבצי CSV נפתחים עם תווים פגומים ב-Excel?
גרסאות ישנות יותר של Microsoft Excel משתמשות כברירת מחדל בדף הקוד המקומי של Windows (כמו Windows-1252) במקום ב-UTF-8 בעת פתיחת קבצי CSV ישירות. הוספת UTF-8 BOM (סמן סדר הבייטים) בתחילת הקובץ מכריחה את Excel לפענח UTF-8 כראוי.
מהי הזרקת CSV (הזרקת נוסחאות)?
הזרקת CSV מתרחשת כאשר קלט משתמש לא מהימן המכיל טריגרים מובילים של נוסחאות ('=', '+', '-', '@') מיוצא לקובץ גיליון אלקטרוני. כאשר הוא נפתח בתוכנה כמו Excel, הגיליון האלקטרוני מריץ באופן אוטומטי את הנוסחה או את פקודת החלפת הנתונים הדינמית (DDE), מה שעלול להריץ פקודות מערכת או להוציא נתונים.
זוגות המרה קשורים ל-CSV
המרת גיליונות אקסל לטבלת CSV מחלצת נתונים טבלאיים גולמיים לפורמט טקסט אוניברסלי לתאימות תוכנה מרבית.
המרת קבצי CSV מבוססי טקסט פשוטים לגיליונות XLSX עשירים בתכונות מאפשרת עיצוב נתונים מתקדם, נוסחאות וגיליונות מרובים.
המרת קבצי טקסט שטוחים למסדי נתונים יחסיים מובנים מאפשרת לך להריץ שאילתות מהירות ולנהל קשרי נתונים מורכבים.
המרת סקריפטים של גיבוי מסדי נתונים רלציוניים לגיליונות נתונים שטוחים לצורך ניתוח נתונים והפקת דוחות בקלות.
המרת מערכי נתונים היררכיים מסוג HDF5 לקבצי טלמטריה שטוחים מסוג CSV הופכת רשומות מדעיות מורכבות ורב-ממדיות לשורות ועמודות פשוטות לצורך ניתוח בגיליונות אלקטרוניים.
המרת רשתות מדעיות רב-ממדיות מסוג NetCDF לקבצי טלמטריה CSV שטוחים הופכת נתוני אקלים ואוקיינוס מורכבים לקריאים בתוכנות גיליונות אלקטרוניים בסיסיות.
המרת קבצי vCard לקבצי CSV של אנשי קשר הופכת כרטיסי קשר היררכיים לשורות גיליון אלקטרוני שטוחות לייבוא נוח למסדי נתונים.