Πίνακας CSV (.csv)
RFC ΤυπικόΤο Comma-Separated Values (CSV) είναι ένα πανταχού παρόν μορφότυπο απλού κειμένου για δεδομένα πινάκων, όπου κάθε γραμμή αντιπροσωπεύει μια εγγραφή δεδομένων και τα πεδία διαχωρίζονται με χαρακτήρες οριοθέτησης.
Μετατροπή XLSX σε CSV
Δωρεάν μετατροπέας από XLSX σε CSV εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.
Συμπίεση CSV στο διαδίκτυο
Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας
Επιθεώρηση & Μεταδεδομένα
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία CSV ελέγχοντας την αρχική δυαδική ακολουθία byte:
Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία CSV ελέγχοντας την αρχική δυαδική ακολουθία byte:
ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):
Δεν υπάρχει σταθερή υπογραφήΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: Byte κειμένου· η κωδικοποίηση ποικίλλει (συχνά UTF-8).
Τυποποίηση: RFC 4180 / IETF
Τεχνικές Προδιαγραφές
| Αρχιτεκτονική Περιέκτη | Οριοθετημένο αρχείο απλού κειμένου που αναπαριστά σειρές και στήλες δεδομένων σε μορφή πίνακα |
| Συμπίεση | Τα Gzip και Deflate μπορούν να συμπιέσουν επαναλαμβανόμενο κείμενο· το μέγεθος που προκύπτει εξαρτάται από τα δεδομένα και τις ρυθμίσεις. |
| Σειρά byte (endianness) | Ροή κειμένου UTF-8 (προαιρετικό UTF-8 BOM EF BB BF που χρησιμοποιείται από το Excel) |
| Χρωματικοί Χώροι | Δεν εφαρμόζεται |
| Κανάλια & Δομή | Εγγραφές γραμμών οριοθετημένες με CRLF και στήλες οριοθετημένες με κόμματα |
| Μέγιστες Διαστάσεις | Απεριόριστες· δυνατότητα ροής σε gigabytes χωρίς φόρτωση ολόκληρου του αρχείου στη μνήμη |
| Διαφάνεια | Δεν εφαρμόζεται |
| Ροή δεδομένων και προοδευτική φόρτωση | Εγγενής επεξεργασία ροής γραμμή-προς-γραμμή που υποστηρίζεται από όλες τις ροές εργασιών δεδομένων |
Τεχνικός Πίνακας Σύγκρισης: CSV έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | CSV (Τρέχον) | Excel (XLSX) | Parquet | JSON |
|---|---|---|---|---|
| Τύπος αρχείου | Επίπεδος πίνακας σε απλό κείμενο | Συμπιεσμένο λογιστικό φύλλο XML | Δυαδική αποθήκευση σε στήλες | Ιεραρχικό κείμενο |
| Πολλαπλά φύλλα | Όχι (μόνο ενιαίος επίπεδος πίνακας) | Ναι (πολλαπλά βιβλία εργασίας και φύλλα) | Αποθήκευση βασισμένη σε κατατμήσεις | Ένθετοι πίνακες και αντικείμενα |
| Τύποι δεδομένων | Κείμενο χωρίς καθορισμένους τύπους δεδομένων | Τυποποιημένα κελιά, τύποι, μορφοποίηση | Αυστηροί δυαδικοί τύποι στηλών | Πρωταρχικοί τύποι (συμβολοσειρά, αριθμός, λογική τιμή) |
| Ανάλυση Μεγάλων Δεδομένων | Αργή (απαιτεί γραμμική ανάγνωση κάθε γραμμής) | Ακατάλληλο για μεγάλα δεδομένα | Εξαιρετικά γρήγορη (παράλειψη στηλών & προώθηση κατηγορημάτων) | Μέτρια |
Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων
Οι στήλες μετατοπίζονται προς τα δεξιά ή οι αριθμοί γραμμών δεν ταιριάζουν.
Βασική Αιτία: Ένα πεδίο κειμένου που περιέχει κόμμα χωρίς χαρακτήρα διαφυγής και χωρίς εισαγωγικά.
Ανάκτηση: Το RFC 4180 απαιτεί τα πεδία που περιέχουν κόμματα να περικλείονται σε διπλά εισαγωγικά: "Smith, John".
Οι τονισμένοι χαρακτήρες αποδίδονται ως παράξενα σύμβολα (mojibake όπως é αντί για é) στο Excel.
Βασική Αιτία: Το Excel άνοιξε ένα CSV σε UTF-8 υποθέτοντας την κλασική κωδικοποίηση χαρακτήρων Windows ANSI/CP1252.
Ανάκτηση: Προσθέστε το Byte Order Mark (BOM) των 3 byte UTF-8 (0xEF 0xBB 0xBF) στην αρχή του αρχείου.
Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή
Τα αρχεία CSV ανοίγουν απευθείας σε λογισμικό λογιστικών φύλλων όπως το Excel και τα Google Sheets, εκθέτοντας τους χρήστες σε επιθέσεις έγχυσης τύπων (Formula Injection / CSV Injection).
Γνωστά διανύσματα επίθεσης
- Έγχυση Τύπων: Κελιά που ξεκινούν με '=', '+', '-', ή '@' και εκτελούν μακροεντολές λογιστικού φύλλου ή εντολές DDE (π.χ. '=cmd|' /C calc'!A0').
- Εξαγωγή δεδομένων μέσω τύπων HYPERLINK() που στέλνουν ευαίσθητα δεδομένα κελιών σε απομακρυσμένους διακομιστές των επιτιθέμενων όταν γίνεται κλικ.
Βέλτιστες αμυντικές πρακτικές: Όταν εξάγετε δεδομένα χρηστών σε CSV, τοποθετήστε ένα απλό εισαγωγικό (') ή χαρακτήρα tab στην αρχή οποιουδήποτε κελιού ξεκινά με '=', '+', '-', ή '@' για να αναγκάσετε την απόδοση απλού κειμένου στο Excel.
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Μέγιστη απλότητα: αναγνώσιμο σε οποιονδήποτε επεξεργαστή κειμένου και με δυνατότητα εισαγωγής σε κάθε βάση δεδομένων και πρόγραμμα λογιστικού φύλλου.
- Εξαιρετικά γρήγορη ροή γραμμή-προς-γραμμή χωρίς τη δημιουργία ενός πλήρους DOM στη μνήμη.
- Ελάχιστη επιβάρυνση: χωρίς πολύπλοκη σύνταξη ετικετών ή ορισμούς σχημάτων.
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Χωρίς τυπικούς τύπους δεδομένων: οι αριθμοί, οι ημερομηνίες, οι τιμές boolean και το κείμενο αποθηκεύονται όλα ως ακατέργαστες συμβολοσειρές.
- Χωρίς υποστήριξη για πολλαπλά φύλλα, μορφοποίηση κελιών, τύπους ή μεταδεδομένα.
- Οι διένεξεις οριοθετών (κόμματα μέσα στο κείμενο, κόμματα δεκαδικών σε ευρωπαϊκές τοπικές ρυθμίσεις) προκαλούν συχνά σφάλματα ανάλυσης.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Σε πολλές ευρωπαϊκές χώρες όπου τα κόμματα χρησιμοποιούνται ως υποδιαιρέσεις δεκαδικών, χρησιμοποιούνται ελληνικά ερωτηματικά (;) αντί για κόμματα ως διαχωριστικά 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 (Byte Order Mark) στην αρχή του αρχείου αναγκάζει το Excel να αποκωδικοποιήσει σωστά το UTF-8.
Τι είναι η Εισαγωγή κακόβουλων τύπων σε αρχεία CSV (Formula Injection);
Η έγχυση CSV συμβαίνει όταν μη έμπιστα δεδομένα χρηστών που περιέχουν χαρακτήρες στην αρχή που ενεργοποιούν τύπους ('=', '+', '-', '@') εξάγονται σε αρχείο λογιστικού φύλλου. Όταν ανοίγει σε λογισμικό όπως το Excel, το λογιστικό φύλλο εκτελεί αυτόματα τον τύπο ή την εντολή δυνατής ανταλλαγής δεδομένων (DDE), εκτελώντας ενδεχομένως εντολές συστήματος ή εξαγάγοντας δεδομένα.
Σχετικά ζεύγη μετατροπής για CSV
Η μετατροπή ενός φύλλου Excel σε πίνακα CSV εξάγει τα ακατέργαστα δεδομένα σε μια ευρέως χρησιμοποιούμενη μορφή κειμένου, για ευρεία συμβατότητα με λογισμικό.
Η μετατροπή απλών αρχείων CSV κειμένου σε υπολογιστικά φύλλα XLSX με πολλές δυνατότητες επιτρέπει την προηγμένη μορφοποίηση δεδομένων, τη χρήση τύπων και πολλαπλών φύλλων.
Η μετατροπή αρχείων επίπεδου κειμένου σε δομημένες σχεσιακές βάσεις δεδομένων σάς επιτρέπει να εκτελείτε γρήγορα ερωτήματα και να διαχειρίζεστε περίπλοκες σχέσεις δεδομένων.
Μετατρέψτε τα σενάρια δημιουργίας αντιγράφων ασφαλείας σχεσιακών βάσεων δεδομένων σε επίπεδα υπολογιστικά φύλλα για απλή ανάλυση δεδομένων και αναφορές.
Η μετατροπή ιεραρχικών συνόλων δεδομένων HDF5 σε επίπεδα αρχεία CSV τηλεμετρίας μετατρέπει πολύπλοκα πολυδιάστατα επιστημονικά αρχεία σε απλές σειρές και στήλες για ανάλυση σε υπολογιστικά φύλλα.
Η μετατροπή πολυδιάστατων επιστημονικών πλεγμάτων NetCDF σε επίπεδα αρχεία CSV τηλεμετρίας καθιστά τα πολύπλοκα δεδομένα κλίματος και ωκεανών αναγνώσιμα σε βασικό λογισμικό υπολογιστικών φύλλων.
Η μετατροπή αρχείων vCard σε CSV επαφών μετατρέπει ιεραρχικές κάρτες επαφών σε επίπεδες σειρές υπολογιστικού φύλλου για εύκολες εισαγωγές σε βάσεις δεδομένων.