Excel σε CSV χωρίς σπασμένους τόνους: UTF-8, BOM και διαχωριστές
Οι περισσότεροι σπασμένοι τόνοι σε ένα CSV προέρχονται από ασυμφωνία κωδικοποίησης: το αρχείο είναι αποθηκευμένο ως UTF-8 αλλά ανοίγεται ως κωδικοποίηση των Windows. Εξαγάγετε το φύλλο ως CSV UTF-8, με byte order mark (BOM) αν το πρόγραμμα που θα το ανοίξει είναι το Excel, και επιλέξτε τον διαχωριστή που περιμένει η γλώσσα και η περιοχή σας. Πριν από την εξαγωγή, μορφοποιήστε στήλες όπως οι ταχυδρομικοί κώδικες και οι τηλεφωνικοί αριθμοί ως κείμενο, ώστε τα μηδενικά να διατηρηθούν.
Μετατροπή Excel σε CSVΘέλω CSV, έχω αρχείο ExcelΚάντε το δωρεάνΓιατί το "é" γίνεται "é"
Ένας χαρακτήρας σε ένα αρχείο αποθηκεύεται ως bytes. Στο UTF-8, το γράμμα é αποτελείται από δύο bytes, C3 και A9. Ένα πρόγραμμα που διαβάζει αυτά τα bytes ως Windows-1252, μια συνηθισμένη κωδικοποίηση των Windows, βλέπει τον χαρακτήρα à για το C3 και το © για το A9. Έτσι το "café" εμφανίζεται ως "café". Μπορείτε να το δοκιμάσετε μόνοι σας: αν κωδικοποιήσετε το é ως UTF-8 και το αποκωδικοποιήσετε ως Windows-1252, παίρνετε é. Το ü, το ñ ή το ö χαλάνε με τον ίδιο τρόπο.
Η λύση δεν είναι να επεξεργαστείτε τους χαρακτήρες. Είναι να πείτε στο πρόγραμμα ποια κωδικοποίηση χρησιμοποιεί το αρχείο.
UTF-8 και BOM
Το UTF-8 είναι η τυπική κωδικοποίηση για κείμενο στο web και στα περισσότερα σύγχρονα προγράμματα. Ένα απλό αρχείο CSV δεν έχει πεδίο που να δηλώνει την κωδικοποίηση που χρησιμοποιεί, οπότε τα προγράμματα την μαντεύουν. Ένα byte order mark είναι τρία bytes στην αρχή του αρχείου, τα EF BB BF, που δηλώνουν UTF-8 σε όσα προγράμματα το αναγνωρίζουν. Το Excel στα Windows συχνά ανοίγει ένα αρχείο UTF-8 χωρίς BOM με την τοπική του κωδικοποίηση, γι' αυτό το BOM είναι η συνηθισμένη λύση.
Στις πρόσφατες εκδόσεις του Excel, το μενού Αποθήκευση ως προσφέρει την επιλογή CSV UTF-8, που προσθέτει το BOM. Μπορείτε επίσης να εισαγάγετε το αρχείο από Δεδομένα, Από κείμενο/CSV, και να ορίσετε την Προέλευση αρχείου σε 65001, UTF-8. Το BOM έχει ένα μειονέκτημα: ένα πρόγραμμα που δεν το περιμένει μπορεί να το θεωρήσει μέρος του ονόματος της πρώτης στήλης. Τα περισσότερα προγράμματα ανάλυσης και τα λογιστικά φύλλα το χειρίζονται σωστά, αλλά αν ένας εισαγωγέας δεδομένων αναφέρει παράξενη κεφαλίδα, αφαιρέστε το BOM.
Κόμμα ή ερωτηματικό
Το CSV σημαίνει τιμές χωρισμένες με κόμμα, και η προδιαγραφή RFC 4180 περιγράφει πεδία χωρισμένα με κόμματα. Σε πολλές χώρες, μεταξύ των οποίων εκείνες που χρησιμοποιούν το δεκαδικό κόμμα, όπως 1,5 για το ένα και μισό, ο διαχωριστικός χαρακτήρας λίστας του Excel είναι το ερωτηματικό. Όταν συμβαίνει αυτό, ένα αρχείο χωρισμένο με κόμματα που ανοίγει στο Excel μπορεί να χωριστεί άσχημα, και ένας αριθμός όπως το 1,5 γίνεται δύο πεδία.
Επιλέξτε τον διαχωριστή που περιμένει το πρόγραμμα-προορισμός. Το εργαλείο Μετατροπή Excel σε CSV προσφέρει κόμμα, ερωτηματικό και tab. Αν το αρχείο προορίζεται για πρόγραμμα σε περιοχή με δεκαδικό κόμμα, το ερωτηματικό είναι συνήθως η ασφαλέστερη επιλογή.
Οι ημερομηνίες γίνονται σειριακοί αριθμοί
Το Excel αποθηκεύει τις ημερομηνίες ως σειριακούς αριθμούς, μετρώντας τις ημέρες από ένα σημείο εκκίνησης. Στο σύστημα ημερομηνιών του 1900, η 1η Ιανουαρίου 1900 είναι ο σειριακός 1. Το Excel θεωρεί επίσης ότι το 1900 είναι δίσεκτος έτος, οπότε μετράει μια 29η Φεβρουαρίου 1900 που δεν υπήρξε ποτέ, ως σειριακό 60. Έτσι η 1η Μαρτίου 1900 είναι ο σειριακός 61 και κάθε μεταγενέστερη ημερομηνία μετατοπίζεται κατά μία ημέρα. Το σφάλμα προήλθε από το Lotus 1-2-3, και η Microsoft διατήρησε το ίδιο σύστημα για λόγους συμβατότητας. Άλλα προγράμματα μπορεί να διαβάζουν ημερομηνίες πριν από την 1η Μαρτίου 1900 με διαφορά μίας ημέρας.
Όταν εξάγετε μια ημερομηνία, μπορεί να δείτε 44927 αντί για 2023-01-01, ή μια ημέρα διαφορά σε παλιές ημερομηνίες. Το εργαλείο μετατρέπει τις ημερομηνίες σε αναγνώσιμο κείμενο. Αν εξάγετε χειροκίνητα, μορφοποιήστε τη στήλη ημερομηνιών ως κείμενο στη μορφή ISO yyyy-mm-dd, την οποία κάθε πρόγραμμα διαβάζει με τον ίδιο τρόπο.
Τα αρχικά μηδενικά εξαφανίζονται
Ένας ταχυδρομικός κώδικας όπως το 02134 είναι κείμενο, αλλά το Excel αντιμετωπίζει έναν πληκτρολογημένο αριθμό ως αριθμό, οπότε εμφανίζει 2134. Το μηδέν χάνεται από το φύλλο, και το CSV που γράφεται από αυτό δεν θα το έχει επίσης. Το ίδιο συμβαίνει με τηλεφωνικούς αριθμούς που ξεκινούν με 0 και με μακριούς αριθμούς ταυτότητας. Πολύ μεγάλοι αριθμοί μπορεί επίσης να χάσουν ψηφία, γιατί το Excel κρατά μόνο περίπου 15 σημαντικά ψηφία.
Η λύση είναι να αποθηκεύσετε αυτές τις στήλες ως κείμενο πριν πληκτρολογήσετε ή εισαγάγετε τα δεδομένα. Όταν ανοίγετε ένα CSV που έχει ήδη τα μηδενικά, χρησιμοποιήστε Δεδομένα, Από κείμενο/CSV και ορίστε τη στήλη ως Κείμενο, αντί να κάνετε διπλό κλικ στο αρχείο.
Κανόνες εισαγωγικών
Το RFC 4180 ορίζει τη συνηθισμένη μορφή CSV. Οι βασικοί κανόνες του για τα εισαγωγικά είναι:
- Ένα πεδίο που περιέχει κόμμα, διπλό εισαγωγικό ή αλλαγή γραμμής πρέπει να περικλείεται σε διπλά εισαγωγικά.
- Ένα διπλό εισαγωγικό μέσα σε πεδίο με εισαγωγικά γράφεται ως δύο διπλά εισαγωγικά.
- Οι γραμμές τελειώνουν με CRLF στην προδιαγραφή, αν και τα περισσότερα εργαλεία δέχονται και το LF.
Για παράδειγμα, η γραμμή "Müller, Anna","She said ""ok""" έχει δύο πεδία: Müller, Anna και She said "ok". Ο τύπος MIME που έχει καταχωρίσει η IANA για το CSV είναι το text/csv.
Το RFC 4180 δεν επιτρέπει διπλό εισαγωγικό μέσα σε πεδίο χωρίς εισαγωγικά, και πολλοί αναλυτές απορρίπτουν μια τέτοια γραμμή ή τη χωρίζουν λανθασμένα. Βάλτε σωστά εισαγωγικά στο πεδίο ή αφαιρέστε τον περιττό χαρακτήρα.
Λίστα ελέγχου πριν από την εξαγωγή
- Εξάγετε ως CSV UTF-8, με BOM αν θα ανοίξει το αρχείο στο Excel.
- Επιλέξτε τον διαχωριστή που περιμένει το πρόγραμμα-προορισμός.
- Μορφοποιήστε τις στήλες αναγνωριστικών, όπως ταχυδρομικούς κώδικες και τηλεφωνικούς αριθμούς, ως κείμενο.
- Γράψτε τις ημερομηνίες ως yyyy-mm-dd.
- Ανοίξτε το αρχείο σε έναν απλό επεξεργαστή κειμένου και ελέγξτε την πρώτη γραμμή και ένα δείγμα από ονόματα με τόνους.
Αόρατοι χαρακτήρες, όπως τα μη διακοπτόμενα κενά, μπορούν επίσης να προκαλέσουν σφάλματα εισαγωγής. Το εργαλείο Αφαίρεση αόρατων χαρακτήρων τους εντοπίζει και τους αφαιρεί, και το αόρατοι χαρακτήρες στο κείμενο εξηγεί από πού προέρχονται. Αφού καθαρίσετε το αρχείο, το Μετατροπή CSV σε JSON μπορεί να το μετατρέψει για προγραμματιστή, όπως περιγράφεται στο CSV σε JSON και πίσω.
Πριν από την εξαγωγή, αξίζει να ελέγξετε τα ίδια τα κελιά: ο έλεγχος τύπων Excel εμφανίζει τους τύπους που δείχνουν σφάλμα ή παραπέμπουν σε άλλο αρχείο, και αυτά ακριβώς τα κελιά φτάνουν κενά σε ένα CSV. Μετά την εξαγωγή, συγκρίνετε τα δύο υπολογιστικά φύλλα για να δείτε τι άλλαξε μεταξύ των εκδόσεων.
Γρήγορες απαντήσεις
Γιατί το αρχείο μου φαίνεται σωστό σε ένα πρόγραμμα και σπασμένο στο Excel; Όταν ένα αρχείο UTF-8 δεν έχει BOM, το Excel στα Windows μπορεί να το διαβάσει με την τοπική του κωδικοποίηση. Η προσθήκη του BOM, ή η εισαγωγή με επιλεγμένο το UTF-8, το διορθώνει.
Χρειάζονται οι εκδόσεις του Excel για Mac το BOM; Ορισμένες πηγές λένε ότι χρειάζονται, οπότε δοκιμάστε με ένα αρχείο που περιέχει ένα όνομα με τόνους πριν το στείλετε.
Μπορώ να διορθώσω τις ημερομηνίες μετά την εξαγωγή; Ναι, αν εξακολουθούν να είναι σειριακοί αριθμοί, αλλά είναι προτιμότερο να τις εξάγετε ως yyyy-mm-dd από την αρχή.
Ανεβαίνει το υπολογιστικό μου φύλλο όταν το μετατρέπω; Το εργαλείο λειτουργεί στον browser σας, οπότε το αρχείο επεξεργάζεται στη δική σας συσκευή. Μπορείτε να το ελέγξετε με τον οδηγό ελέγχου αποστολής αρχείων.
Μετάφραση από το Αγγλικό πρωτότυπο με τη βοήθεια τεχνητής νοημοσύνης.
Σχόλια
Δεν υπάρχουν σχόλια ακόμη. Γίνετε οι πρώτοι.


