Vad som gör denna omvandling unik
Att konvertera en Excel-fil (XLSX) till JSON är inte samma sak som att exportera till CSV. En XLSX-fil är i grunden ett zippat XML-arkiv som kan innehålla flera kalkylblad, celltyper (text, nummer, datum, booleska värden), formler och omfattande formatering. JSON å andra sidan är ett typat, hierarkiskt format som stöder objekt, arrayer, tal, booleska värden och null. När du använder den här sidan bevaras numeriska och booleska cellvärden som typade JSON-värden – de tvingas inte in i citattecken som strängar. Cellformatering, formler (som inte beräknas om) och all data utanför det första kalkylbladet kastas bort. Till skillnad från CSV, som plattar ut varje rad till en ren textrad, kan JSON representera tabellstrukturen som en array av objekt där kolumnnamnen blir nycklar. En avgörande insikt: källtabellen i Excel är platt – det finns ingen inbyggd hierarki i ett XLSX-kalkylblad – så kapslade JSON-strukturer skapas inte automatiskt. Verktyget gör en rak 1:1-översättning av den första arbetsbladets synliga data till JSON-format.
Hur XLSX och JSON skiljer sig åt – celltyper i fokus
En XLSX-fil lagrar varje cell med en angiven datatyp: t (text/inline-sträng), n (nummer), b (boolesk), e (fel), s (delad sträng) och d (datum, men oftast som ett serienummer). När konverteringen sker mappas dessa typer till motsvarande JSON-typer:
| Excel-celltyp | JSON-typ | Exempel |
|---|---|---|
Nummer (t.ex. 123.45) |
number (utan citattecken) |
123.45 |
| Booleskt (TRUE/FALSE) | boolean |
true / false |
Datum (serienummer, t.ex. 45000) |
string |
"2023-08-15T00:00:00.000Z" |
| Text (sträng) | string |
"Produkt A" |
| Tom cell | string |
"" |
Formler lagras som en sträng (t.ex. =SUM(A1:A10)), men verktyget läser det senast sparade värdet – inte en dynamisk beräkning. Om du öppnar filen i Excel, sparar den och sedan laddar upp den, får du värdet från sparögonblicket. Formeln i sig försvinner i JSON-utdata.
Datum är en klassisk fallgrop. Excel lagrar datum som serienummer (antal dagar sedan 1900-01-01, med en känd bugg för 1900-skottåret). Konverteringen skriver datumet som en ISO 8601-sträng i UTC, till exempel "2023-08-15T00:00:00.000Z". Om du förväntar dig en annan formatsträng måste du hantera omvandlingen själv efter konverteringen – verktyget gör ingen tolkning.
Vad som händer – steg för steg
- Indata: Du laddar upp en XLSX-fil, antingen via dra-och-släpp eller filväljaren.
- Lokal bearbetning: Webbläsaren läser filen. Ingenting skickas till någon server.
- Extrahering: Verktyget öppnar XLSX-filen, hittar det första arbetsbladet och läser alla rader med synliga celler.
- Strukturering: Första raden tolkas som kolumnrubriker. Varje efterföljande rad omvandlas till ett JSON-objekt där nyckeln är rubriken och värdet är cellens JSON-typade innehåll. Alla objekt samlas i en JSON-array. Dubblettrubriker får suffixen _2, _3. Tal, booleaner och datum behåller sina typer.
- Förhandsgranskning: Resultatet visas i webbläsaren: antal rader, antal kolumner, filstorlek på JSON-filen och ett utdrag av de första 8 raderna och 8 kolumnerna.
- Nedladdning: Du kan ladda ner JSON-filen direkt.
Viktiga begränsningar och felmeddelanden
Verktyget har tydliga regler. Här är vad som gäller:
- Endast första kalkylbladet: Om din arbetsbok har flera flikar ignoreras de. Du måste konvertera varje flik separat.
- Inga formelberäkningar: Som nämnts är det sparade värdet det enda som syns. Om cellen är tom på grund av en olöst formel får du
null. - Ingen formatering: Färger, teckensnitt, kantlinjer, sammanslagna celler – allt faller bort.
- Storleksbegränsningar: Filen får vara högst 8 MB stor, med högst 10 000 rader och 200 kolumner. Om filen överskrider maxstorleken visas ”This file is too large. Use a file under ‹max›.”. Om tabellen har fler än 10 000 rader eller 200 kolumner visas motsvarande fel.
- Felaktig filtyp: Väljer du en fil som inte är en XLSX visas ”Välj en CSV-, JSON- eller XLSX-fil.”.
- Andra fel: ”Denna Excel-fil kunde inte öppnas.” (ogiltig eller trasig fil), ”Denna fil innehåller inga tabellrader.” (om första bladet är tomt), ”Kunde inte konvertera denna fil.”, ”Konverteringen avbröts.”, och ”Denna konvertering tar för lång tid. Prova med en mindre fil.” (om konverteringen tar mer än cirka 12 sekunder).
Exempel på situationer som genererar fel:
- En XLSX med bara en rubrikrad men ingen data → ”Denna fil innehåller inga tabellrader.”.
- En fil som är sparad från Google Sheets men innehåller skadad XML → ”Denna Excel-fil kunde inte öppnas.”.
- En fil med 1 000 000 rader → ”Denna konvertering tar för lång tid. Prova med en mindre fil.”.
Vem har nytta av detta?
Verktyget är byggt för specifika användargrupper:
- Webbutvecklare: Får produktdata i Excel från en leverantör och behöver JSON för ett API eller en frontend-app. De slipper skriva ett eget konverteringsskript.
- Dataanalytiker: Vill snabbt omvandla en kvartalsrapport från XLSX till maskinläsbart JSON för vidare bearbetning i Python eller JavaScript.
- Samarbetande team: En partner föredrar JSON framför Excel. Istället för att installera programvara gör man en engångskonvertering i webbläsaren.
- Integritetsmedvetna användare: Ingen uppladdning till molnet – allt sker lokalt. Det är särskilt viktigt om Excel-filen innehåller känsliga personuppgifter eller företagshemligheter.
Tekniken bakom – klientbaserad omvandling
Hela konverteringen körs i din webbläsare. Din webbläsare tolkar arbetsboken – ett ZIP-paket med XML-delar – och skriver den konverterade utdatafilen på din enhet. Inga byte skickas till en server. Detta har två konsekvenser:
- Ingen datalagring hos en tredje part.
- Ingen överföringstid utöver nedladdningen av själva webbsidan.
- Ingen risk för obehörig åtkomst under transport.
Det innebär också att filstorleken begränsas av webbläsarens minne. Verktyget tillämpar hårda gränser: högst 8 MB per fil, högst 10 000 rader och 200 kolumner per tabell. Om någon gräns överskrids stoppas konverteringen och ett lämpligt felmeddelande visas. En konvertering som tar mer än cirka 12 sekunder stoppas också, med meddelandet "Denna konvertering tar för lång tid. Prova med en mindre fil.".
Vanliga fallgropar och tips
Även om verktyget är enkelt att använda finns det några saker att tänka på för att få rätt JSON-utdata. Verktyget läser endast det första kalkylbladet i filen. Den första raden i kalkylbladet blir objektsnycklarna (en upprepad rubrik får ett _2, _3-suffix). Varje efterföljande rad blir ett objekt. Eftersom konverteringen bevarar de ursprungliga celltyperna kan utdata-JSON konsumeras direkt av JavaScript-kod, ett REST API eller någon applikation som förväntar sig typad data. Du behöver inte konvertera strängar tillbaka till nummer eller köra en sanningskontroll på "FALSE" – verktyget gör det åt dig.
Hela konverteringen körs i din webbläsare. Din webbläsare analyserar arbetsboken och skriver den konverterade utdata på din enhet. Inga byte skickas till en server. Detta har två konsekvenser:
- Integritet: om din XLSX innehåller känslig data – anställdas löner, kundkontaktlistor, finansiella prognoser – lämnar den aldrig din maskin. Det finns inget uppladdningssteg att logga eller granska.
- Hastighet: för filer under storleksgränsen slutförs konverteringen på några sekunder. Det finns ingen nätverkslatens.
Avvägningen är att webbläsarens minne och processorkraft sätter taket. Verktyget tillämpar hårda gränser: en fil i taget, max 8 MB per fil, 10 000 rader och 200 kolumner per tabell. Om någon gräns överskrids stoppas konverteringen och ett lämpligt fel visas. En konvertering som tar mer än cirka 12 sekunder stoppas också, med meddelandet "Denna konvertering tar för lång tid. Prova med en mindre fil.".
Verktyget visar specifika felmeddelanden för kända felscenarier. Eftersom konverteringen är deterministisk (samma indata ger alltid samma utdata) kan erfarna användare förutse vilka filer som kommer att misslyckas:
- "Välj en CSV-, JSON- eller XLSX-fil." – den valda filen är inte en CSV-, JSON- eller XLSX-fil.
- "Denna Excel-fil kunde inte öppnas." – XLSX-filen är korrupt, är inte ett ZIP-arkiv eller bryter mot OOXML-specifikationen.
- "Denna fil innehåller inga tabellrader." – det första kalkylbladet är helt tomt. Ett blad med endast en rubrikrad är inget fel: det konverteras till en tom array (``).
- "This file is too large. Use a file under 8 MB." – filens bytestorlek överskrider gränsen på 8 MB.
- "Kunde inte konvertera denna fil." – ett oväntat fel som inte matchar ett mer specifikt fel.
- "Konverteringen avbröts." – du avbröt konverteringen, till exempel genom att rensa den valda filen medan den kördes.
- "Denna konvertering tar för lång tid. Prova med en mindre fil." – konverteringen överskred den ungefärliga gränsen på 12 sekunder, vanligtvis för att arbetsboken är mycket stor.
Om du ser felen "för stor" eller "för lång tid" är det enda botemedlet att minska antalet rader eller kolumner. Att dela upp XLSX-filen i mindre filer och konvertera varje separat fungerar ofta.
Sammanslagna celler
Sammanslagna celler i Excel ser ut som en enda cell men i XML-filen finns värdet bara i den övre vänstra cellen. Övriga celler i det sammanslagna området blir tomma strängar. JSON:en får därför "" för de tomma cellerna. Lösning: Ångra sammanslagningar innan konvertering och fyll i värden manuellt om du vill ha en regelbunden tabell.
Tomma rader och kolumner
Om ditt kalkylblad har tomma rader eller kolumner i början eller mitten kan de ignoreras – verktyget hoppar över helt tomma rader. Däremot om du har en rubrikrad som inte är den första raden (t.ex. rad 2) kan du få fel rubriker. Bästa praxis: Placera rubrikerna på rad 1, data från rad 2.
Datumhantering
Datum i Excel lagras som ett serienummer (t.ex. 45144 för 15 augusti 2023). Konverteraren skriver det som en ISO 8601-sträng i UTC, till exempel "2023-08-15T00:00:00.000Z". Om du behöver ett annat format måste du efterbehandla JSON. Detsamma gäller för procentsatser och valutor – de lagras som siffror i XLSX, så de blir siffror i JSON. Ett procentvärde på 12,5 % visas som 0,125, inte "12,5 %". Verktyget bevarar inte den underliggande formatmasken; det läser bara det lagrade numeriska värdet.
const date = new Date("2023-08-15T00:00:00.000Z");
const text = date.toLocaleDateString("sv-SE"); // "2023-08-15"
Projekt med flera kalkylblad
Om du har data i flera flikar måste du konvertera varje flik för sig. Verktyget läser endast det första kalkylbladet i filen. Ett vanligt misstag är att anta att verktyget hanterar hela arbetsboken. Lösning: Spara varje flik som en separat XLSX-fil eller kopiera data till ett gemensamt blad.
Dolda rader och kolumner
Verktyget läser synliga celler i XML:en. Dolda rader eller kolumner (dolda via Excels gruppering eller dölj-funktion) kan fortfarande inkluderas i utdatan om de har värden. Endast det första kalkylbladet läses. Celler skrivs som vanliga värden – inga formler, ingen styling. Värdetyper bevaras.
FAQ
Kan jag konvertera en CSV-fil till JSON med samma verktyg? Nej, sidan är specifikt för XLSX till JSON. Väljer du en CSV-fil visas felmeddelandet ”Välj en CSV-, JSON- eller XLSX-fil.” – du måste använda en XLSX.
Varför får jag null för vissa celler?
Antingen är cellen tom, eller så tillhör den en sammanslagen cellgrupp (endast den första cellen har värdet). Kontrollera din Excelfil.
Kan jag konvertera en XLSX med makron (XLSM)? Tekniskt sett är XLSM samma format med makron i en separat del. Verktyget bör fungera, men makron körs inte och kan orsaka problem om filen är skadad. Prova och se. Om det misslyckas, spara som XLSX först.
Vad händer med formaterade siffror, t.ex. valutatecken eller procent?
Formateringen tas bort. Värdet 1234,50 med valutatecken blir talet 1234.5 (med punkt som decimalavgränsare). Om du vill ha valutatecken, formatera cellen som text i Excel före konvertering.
Finns det en gräns för filstorlek eller antal rader? Ja, verktyget har maxgränser. Filer är begränsade till 8 MB, och tabeller till 10 000 rader och 200 kolumner. Om din fil överstiger gränsen visas ett felmeddelande. En konvertering som tar mer än cirka 12 sekunder stoppas också med meddelandet ”Denna konvertering tar för lång tid. Prova med en mindre fil.”.
Kan jag lita på att data inte skickas till någon server? Ja, all kod körs i din webbläsare. Du kan till och med koppla bort internet efter att sidan laddats – konverteringen fungerar ändå. Din XLSX lämnar aldrig din dator.