fixmint
DA

Excel til CSV uden ødelagte bogstaver: UTF-8, BOM og skilletegn

Af · · 5 min. læsning

De fleste ødelagte bogstaver i en CSV-fil skyldes en forkert tegnkodning: filen er gemt som UTF-8, men åbnes med en Windows-kodning. Eksportér arket som CSV UTF-8, med en byte order mark (BOM), hvis Excel er programmet, der skal åbne filen, og vælg det skilletegn, din lokale indstilling forventer. Før eksporten formaterer du kolonner som postnumre og telefonnumre som tekst, så nullerne bevares.

Excel til CSVHar brug for CSV, har en Excel-filPrøv gratis

Hvorfor "é" bliver til "é"

Et tegn i en fil gemmes som bytes. I UTF-8 fylder bogstavet é to bytes, C3 og A9. Et program, der læser disse bytes som Windows-1252, en almindelig Windows-kodning, ser tegnet à for C3 og © for A9. Så "café" vises som "café". Du kan selv se det: Hvis du koder é som UTF-8 og læser resultatet som Windows-1252, får du é. Det samme sker med ü, ñ og ö.

Løsningen er ikke at rette i tegnene. Du skal fortælle programmet, hvilken kodning filen bruger.

UTF-8 og BOM

UTF-8 er standardkodningen for tekst på nettet og i de fleste moderne programmer. En almindelig CSV-fil har intet felt, der siger, hvilken kodning den bruger, så programmerne gætter. En byte order mark er tre bytes helt i begyndelsen af filen, EF BB BF, som fortæller programmer, der leder efter den, at filen er UTF-8. Excel på Windows åbner ofte en UTF-8-fil uden BOM med sin lokale kodning, så BOM er den almindelige løsning.

I nyere versioner af Excel tilbyder menuen Gem som en mulighed for CSV UTF-8, som tilføjer BOM. Du kan også importere filen via Data, Hent data fra tekst/CSV og vælge filoprindelse 65001, UTF-8. BOM har én ulempe: Et program, der ikke forventer den, kan behandle den som en del af det første kolonnenavn. De fleste parsere og regnearksprogrammer håndterer den, men hvis en dataimportør melder et mærkeligt kolonnenavn, skal du fjerne BOM'en.

Komma eller semikolon

CSV står for comma-separated values, og specifikationen RFC 4180 beskriver felter adskilt af kommaer. I mange lande, herunder lande, der bruger decimalkomma som i 1,5 for halvanden, er Excels listeskilletegn et semikolon. Når det sker, kan en kommaadskilt fil åbnet i Excel dele sig forkert, og et tal som 1,5 bliver til to felter.

Vælg det skilletegn, dit målprogram forventer. Værktøjet Excel til CSV tilbyder komma, semikolon og tabulator. Hvis filen skal bruges i et program med decimalkomma, er et semikolon som regel det sikreste valg.

Datoer bliver til serienumre

Excel gemmer datoer som serienumre, der tæller dage fra et startpunkt. I datosystemet 1900 er 1. januar 1900 serienummer 1. Excel behandler også 1900 som et skudår, så det tæller en 29. februar 1900, der aldrig eksisterede, som serienummer 60. Det gør 1. marts 1900 til serienummer 61 og forskyder alle senere datoer med én dag. Fejlen stammer fra Lotus 1-2-3, og Microsoft har bevaret systemet af hensyn til kompatibiliteten. Andet software kan læse datoer før 1. marts 1900 med en dag forskel.

Når du eksporterer en dato, kan du se 44927 i stedet for 2023-01-01, eller en dag forskel i gamle datoer. Værktøjet omregner datoer til læsbar tekst. Hvis du eksporterer manuelt, så formatér datokolonnen som tekst i ISO-formatet åååå-mm-dd, som alle programmer læser ens.

Førende nuller forsvinder

Et postnummer som 02134 er tekst, men Excel behandler et indtastet tal som et tal, så det viser 2134. Nullet er væk fra arket, og CSV-filen, der skrives ud fra det, indeholder det heller ikke. Telefonnumre, der begynder med 0, og lange ID-numre har samme problem. Meget lange tal kan også miste cifre, fordi Excel kun gemmer omkring 15 betydende cifre.

Løsningen er at gemme disse kolonner som tekst, før du indtaster eller importerer data. Når du åbner en CSV-fil, der allerede har nullerne, så brug Data, Hent data fra tekst/CSV og sæt kolonnen til Tekst i stedet for at dobbeltklikke på filen.

Regler for citering

RFC 4180 definerer det almindelige CSV-format. Dets vigtigste regler for citering er:

  • Et felt, der indeholder et komma, et dobbelt anførselstegn eller et linjeskift, skal omsluttes af dobbelte anførselstegn.
  • Et dobbelt anførselstegn inde i et citeret felt skrives som to dobbelte anførselstegn.
  • Linjer afsluttes med CRLF i specifikationen, selvom de fleste værktøjer accepterer LF.

For eksempel har rækken "Müller, Anna","She said ""ok""" to felter: Müller, Anna og She said "ok". Den IANA-registrerede MIME-type for CSV er text/csv.

RFC 4180 tillader ikke et dobbelt anførselstegn i et ucitereret felt, og mange parsere afviser en sådan række eller deler den forkert. Citér feltet korrekt, eller fjern det løse tegn.

Tjekliste før eksport

  1. Eksportér som CSV UTF-8, med BOM hvis Excel skal åbne filen.
  2. Vælg det skilletegn, dit målprogram forventer.
  3. Formatér ID-lignende kolonner, som postnumre og telefonnumre, som tekst.
  4. Skriv datoer som åååå-mm-dd.
  5. Åbn filen i en simpel teksteditor, og tjek første linje og et udsnit af navne med accenter.

Skjulte tegn, som hårde mellemrum, kan også give importfejl. Værktøjet Fjern skjulte tegn finder og fjerner dem, og skjulte tegn i tekst forklarer, hvor de kommer fra. Når filen er ren, kan CSV til JSON konvertere den til en udvikler, som beskrevet i CSV til JSON og tilbage.

Før du eksporterer, er det værd at kigge på selve cellerne: Excel-formelchecker viser de formler, der giver en fejl eller peger på en anden fil, og netop de celler ender som tomme i en CSV. Efter eksporten kan du sammenligne de to regneark for at se, hvad der har ændret sig mellem versionerne.

Hurtige svar

Hvorfor ser min fil rigtig ud i ét program og ødelagt i Excel? Når en UTF-8-fil ikke har BOM, kan Excel på Windows læse den med sin lokale kodning. Tilføjelse af BOM, eller import med UTF-8 valgt, løser det.

Har Mac-versioner af Excel brug for BOM? Nogle kilder siger det, så test med en fil, der indeholder et navn med accenter, før du sender den.

Kan jeg rette datoerne efter eksporten? Ja, hvis de stadig er serienumre, men det er bedre at eksportere dem som åååå-mm-dd fra start.

Bliver mit regneark uploadet, når jeg konverterer det? Værktøjet kører i din browser, så filen behandles på din egen enhed. Du kan tjekke det med guiden til upload-tjek.

Oversat fra Engelsk original med AI-hjælp.

Kommentarer

    Ingen kommentarer endnu. Vær den første.

    Din bedømmelse (valgfri)

    Din e-mail vises eller gemmes aldrig.

    Forside til Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Hvorfor offentlige, gratis og åbne datasæt kommer til at forme kunstig generel intelligens lige så meget som algoritmer og regnekraft.

    $4.99Køb på GumroadPå engelsk