Excel till CSV utan trasiga tecken: UTF-8, BOM och avgränsare
De flesta trasiga tecken i en CSV-fil beror på att teckenkodningen inte stämmer: filen är sparad som UTF-8 men öppnas med en Windows-kodning. Exportera kalkylbladet som CSV UTF-8, med en byte order mark (BOM) om det är Excel som ska öppna filen, och välj det avgränsartecken som målprogrammet förväntar sig. Innan du exporterar, formatera kolumner som postnummer och telefonnummer som text, så att nollorna behålls.
Excel till CSVBehöver CSV, har en Excel-filGör det gratisVarför ”é” blir ”é”
Ett tecken i en fil lagras som byte. I UTF-8 består bokstaven é av två byte, C3 och A9. Ett program som läser dessa byte som Windows-1252, en vanlig Windows-kodning, ser tecknet à för C3 och © för A9. Så ”café” visas som ”café”. Du kan testa detta själv: kodar du é som UTF-8 och avkodar resultatet som Windows-1252 får du é. Bokstäverna ü, ñ och ö går sönder på samma sätt.
Lösningen är inte att redigera tecknen utan att tala om för programmet vilken kodning filen använder.
UTF-8 och BOM
UTF-8 är standardkodningen för text på webben och i de flesta moderna program. En vanlig CSV-fil har inget fält som anger vilken kodning den använder, så programmen gissar. En byte order mark är tre byte i början av filen, EF BB BF, som signalerar UTF-8 till program som letar efter den. Excel på Windows öppnar ofta en UTF-8-fil utan BOM med sin lokala kodning, så BOM är den vanliga lösningen.
I nyare versioner av Excel finns alternativet CSV UTF-8 i menyn Spara som, och det lägger till BOM. Du kan också importera filen via Data, Från text/CSV och ställa in Filursprung till 65001, UTF-8. BOM har en nackdel: ett program som inte väntar sig den kan tolka den som en del av det första kolumnnamnet. De flesta parsers och kalkylprogram klarar det, men om en dataimportör visar en konstig rubrik ska du ta bort BOM:en.
Komma eller semikolon
CSV står för kommaseparerade värden, och specifikationen RFC 4180 beskriver fält som avgränsas med kommatecken. I många länder, bland annat de som använder decimalkomma, som i 1,5 för ett och en halv, är Excels listavgränsare ett semikolon. När det händer kan en kommaavgränsad fil som öppnas i Excel delas upp fel, och ett tal som 1,5 blir två fält.
Välj det avgränsartecken som målprogrammet förväntar sig. Excel till CSV-verktyget erbjuder komma, semikolon och tabb. Om filen ska användas i ett program med decimalkomma är semikolon oftast det säkrare valet.
Datum blir serienummer
Excel lagrar datum som serienummer, som räknar dagar från en startpunkt. I datumsystemet 1900 är 1 januari 1900 serienummer 1. Excel behandlar också 1900 som skottår, så det räknar ett 29 februari 1900, som aldrig existerade, som serienummer 60. Därmed blir 1 mars 1900 serienummer 61, och alla senare datum förskjuts ett dygn. Felet kommer från Lotus 1-2-3, och Microsoft har behållit samma system av kompatibilitetsskäl. Annan programvara kan läsa datum före 1 mars 1900 ett dygn fel.
Vid export kan du se 44927 i stället för 2023-01-01, eller ett dygn fel i gamla datum. Verktyget omvandlar datum till läsbar text. Om du exporterar manuellt, formatera datumkolumnen som text i ISO-formen åååå-mm-dd, som alla program läser på samma sätt.
Inledande nollor försvinner
Ett postnummer som 02134 är text, men Excel behandlar ett inskrivet tal som ett tal, så det visas som 2134. Nollan försvinner från kalkylbladet, och CSV-filen som skrivs från det får inte heller med den. Telefonnummer som börjar med 0 och långa ID-nummer drabbas på samma sätt. Mycket långa tal kan dessutom förlora siffror, eftersom Excel bara behåller cirka 15 signifikanta siffror.
Lösningen är att lagra kolumnerna som text innan du skriver in eller importerar data. När du öppnar en CSV-fil som redan har nollorna, använd Data, Från text/CSV och ställ in kolumnen på Text i stället för att dubbelklicka på filen.
Citeringsregler
RFC 4180 definierar det vanliga CSV-formatet. Dess huvudsakliga regler för citattecken är:
- Ett fält som innehåller ett kommatecken, ett dubbelt citattecken eller en radbrytning måste omslutas av dubbla citattecken.
- Ett dubbelt citattecken inne i ett citerat fält skrivs som två dubbla citattecken.
- Rader avslutas med CRLF i specifikationen, även om de flesta verktyg godkänner LF.
Till exempel har raden "Müller, Anna","She said ""ok""" två fält: Müller, Anna och She said "ok". MIME-typen som IANA har registrerat för CSV är text/csv.
RFC 4180 tillåter inte ett dubbelt citattecken i ett icke citerat fält, och många parsers avvisar en sådan rad eller delar upp den fel. Citera fältet korrekt eller ta bort det felaktiga tecknet.
En checklista före export
- Exportera som CSV UTF-8, med BOM om Excel ska öppna filen.
- Välj det avgränsartecken som målprogrammet förväntar sig.
- Formatera ID-liknande kolumner, som postnummer och telefonnummer, som text.
- Skriv datum som åååå-mm-dd.
- Öppna filen i en vanlig textredigerare och kontrollera första raden och ett urval av namn med accenter.
Osynliga tecken, som hårda blanksteg, kan också orsaka importfel. Ta bort osynliga tecken hittar och tar bort dem, och osynliga tecken i text förklarar var de kommer ifrån. När filen är ren kan CSV till JSON konvertera den för en utvecklare, vilket beskrivs i CSV till JSON och tillbaka.
Innan du exporterar är cellerna själva värda en titt: Excel-formelkontroll listar formler som visar ett fel eller pekar på en annan fil, och det är exakt de celler som hamnar tomma i en CSV. Efter exporten kan du jämföra de två kalkylbladen för att se vad som ändrats mellan versionerna.
Snabba svar
Varför ser min fil rätt ut i ett program men trasig i Excel? När en UTF-8-fil saknar BOM kan Excel på Windows läsa den med sin lokala kodning. Att lägga till BOM, eller importera med UTF-8 valt, åtgärdar det.
Behöver Mac-versioner av Excel BOM? Vissa källor säger att de gör det, så testa med en fil som innehåller ett namn med accenter innan du skickar den.
Kan jag fixa datumen efter exporten? Ja, om de fortfarande är serienummer, men det är bättre att exportera dem som åååå-mm-dd från början.
Laddas mitt kalkylblad upp när jag konverterar det? Verktyget körs i din webbläsare, så filen behandlas på din egen enhet. Du kan kontrollera detta med guiden om uppladdningskontroll.
Översatt från Engelsk original med hjälp av AI.
Kommentarer
Inga kommentarer än. Var först.


