Šta ova stranica radi
Stranica Excel‑to‑JSON prihvata Excel datoteku (XLSX) i vraća JSON datoteku koja sadrži podatke iz prvog radnog lista u obliku strukturne tabele. Konverzija se u potpunosti izvršava u vašem pregledniku – nijedan podatak se ne šalje na server.
Na ulazu se nalazi jedna XLSX datoteka (povlačenjem ili odabirom kroz file picker). Na izlazu dobijate JSON datoteku spremnu za preuzimanje, pregled rezultata, broj redova i kolona konvertovane tabele te veličinu izlazne JSON datoteke.
U čemu je razlika: XLSX u JSON nije isto što i XLSX u CSV
Konvertovanje XLSX u JSON suštinski se razlikuje od konvertovanja u CSV. XLSX datoteka je zapravo zipovani XML radni list koji može sadržavati više listova, tipove ćelija (tekst, broj, datum, logička vrijednost), formule i bogato formatiranje. JSON je, s druge strane, format koji podržava tipove podataka – objekte, nizove, brojeve, logičke vrijednosti i null.
Kod konverzije iz XLSX u JSON, numeričke i logičke vrijednosti ćelija mogu se sačuvati kao tipizirane JSON vrijednosti (brojevi, true/false) umjesto da budu prisilno pretvorene u stringove u navodnicima, što se dešava kod CSV-a. Formatiranje ćelija, formule (koje se ne izračunavaju) i svi podaci izvan prvog lista se odbacuju. Za razliku od CSV-a, koji svaki red pretvara u običan tekst, JSON može predstaviti tabelarnu strukturu kao niz objekata gdje su nazivi kolona ključevi. Međutim, izvorna tabela je ravna – u XLSX tabeli nema hijerarhije – pa se ugniježđene JSON strukture ne stvaraju automatski.
Ova razlika je ključna: korisnik koji očekuje da će dobiti ugniježđeni JSON poput onog iz API‑ja bit će razočaran. Alat samo preslikava ravnu tabelu u JSON niz objekata, pri čemu je svaki red jedan objekt, a svaka kolona jedan ključ.
Kako funkcioniše: ulazi i izlazi
Ulaz: Jedna XLSX datoteka (isključivo.xlsx). Format izlaza mora biti podešen na JSON.
Izlaz:
- Konvertovana JSON datoteka spremna za preuzimanje.
- Pregled rezultata direktno u pregledniku.
- Broj redova i kolona u konvertovanoj tabeli.
- Veličina izlazne JSON datoteke.
Proces je trenutan i ne zahtijeva instalaciju softvera. Sve se dešava na klijentskoj strani pomoću JavaScript biblioteke koja učitava XLSX, parsira ga i generiše JSON. Zbog toga nema kašnjenja mreže niti rizika od curenja podataka.
Pravila i granični slučajevi
Pri radu s ovim alatom morate poznavati njegova ograničenja. Ona su jasno definisana:
- Alat čita samo prvi radni list XLSX datoteke. Ako imate podatke na drugim listovima, morate ih prvo izdvojiti u zasebne datoteke.
- Koriste se vidljive vrijednosti; formule se ne izračunavaju. Rezultat ćelije koja sadrži formulu je ono što je posljednji sačuvano u datoteci. Ako formula nije bila izračunata (npr. ručno unesen tekst koji nije vrijednost), alat će uzeti praznu ili grešku.
- Stilizovanje ćelija, spojene ćelije i formatiranje (fontovi, boje, ivice) se ne čuvaju.
- Ako se XLSX datoteka ne može parsirati, prikazuje se poruka: “This Excel file could not be opened.”
- Ako prvi radni list ne sadrži nijedan red s podacima, pojavljuje se: “This file has no table rows.”
- Ograničenja veličine datoteke: ako datoteka premaši maksimalnu dozvoljenu veličinu (
‹max›), dobijate: “This file is too large. Use a file under‹max›.” Isto važi za broj redova i kolona. - Ostale greške uključuju: “Choose a CSV, JSON or XLSX file.”, “Could not convert this file.”, “Conversion cancelled.” i “This conversion is taking too long. Try a smaller file.”
Važno je napomenuti da alat ne radi nikakvu validaciju unosa osim ovih osnovnih provjera. Ako imate skrivene redove ili kolone, oni će se pojaviti u izlazu (osim ako su eksplicitno filtrirani u Excelu). Spojene ćelije se ponašaju nepredvidivo – obično se uzima vrijednost gornje lijeve ćelije, a ostale su prazne.
Ko treba da koristi ovaj alat
Ciljna publika je široka:
- Web developer koji dobija podatke o proizvodima u Excel tabeli i treba ih kao JSON za API ili front‑end aplikaciju.
- Data analitičar koji želi brzo transformisati kvartalni izvještaj (XLSX) u mašinski čitljiv JSON format za dalju obradu.
- Tim koji sarađuje sa vanjskim partnerima koji preferiraju JSON nad Excelom i treba jednokratnu konverziju bez instalacije softvera.
- Korisnik koji brine o privatnosti – želi konvertovati XLSX u JSON bez slanja podataka na cloud servis.
Alat je posebno koristan kada su podaci osjetljivi (finansijski izvještaji, lični podaci) i kada ne želite da ih povjerite serveru. Sve ostaje u vašem pregledniku.
Tehničke pojedinosti: unutar XLSX i JSON
Struktura XLSX datoteke
XLSX je zapravo ZIP arhiva koja sadrži XML dokumente. Unutar nje se nalaze:
[Content_Types].xml– definiše tipove sadržaja.xl/workbook.xml– definiše listove (worksheets).xl/worksheets/sheet1.xml– podaci prvog lista (ćelije, formule, tipovi).xl/styles.xml– formatiranje (font, boje, poravnanje).xl/sharedStrings.xml– dijeljeni stringovi (tekstovi koji se ponavljaju).
Alat koristi JavaScript biblioteku koja otpakuje ZIP, parsira sheet1.xml i sharedStrings.xml, a zatim preslikava svaku ćeliju u odgovarajući JSON tip.
Mapiranje tipova ćelija
U XLSX svaka ćelija ima atribut t (type) i s (style). Mogući tipovi:
| XLSX tip | Primer | JSON tip |
|---|---|---|
t="s" (shared string) |
"Njujork" | string |
t="n" (number) |
42.5 | number |
t="b" (boolean) |
1 (true) | boolean (true) |
t="d" (date) |
2010‑01‑01T00:00:00 | string u ISO formatu (npr. "2010-01-01T00:00:00") |
t="e" (error) |
#N/A | null ili string? – zavisi od implementacije; obično se pretvara u null. |
Brojevi se prenose tačno, logičke vrijednosti postaju true/false, a datumi postaju ISO stringovi (bez vremenske zone). Formule se ne vrednuju; uzima se zadnja sačuvana vrijednost (ćelija sa atributom cm ili prazna).
Zašto se formule gube
U XLSX datoteci formula se čuva kao tekst (npr. =SUM(A1:A10)), a njena izračunata vrijednost kao poseban atribut. Međutim, vrijednost formule može biti zastarjela ili potpuno odsutna ako datoteka nije ponovo izračunata prije čuvanja. Da bi alat izračunao formule, morao bi učitati cijeli Excel engine – to je složen i nepouzdan posao koji preglednik ne može efikasno obaviti. Zato alat jednostavno uzima ono što je sačuvano kao rezultat.
Ograničenje samo na prvi list
Prvi radni list u XLSX datoteci obično je onaj koji je aktivan prilikom čuvanja. Alat ne nudi izbor lista jer bi to zahtijevalo dodatni korisnički interfejs i znatno usložnjavanje. Ako trebate podatke s drugog lista, jednostavno otvorite tu datoteku u Excelu, kopirajte taj list u zasebnu datoteku i konvertujte je.
Obrada na klijentskoj strani
Cijela konverzija se obavlja u JavaScriptu unutar preglednika. To znači:
- Brzina zavisi od veličine datoteke i performansi računara.
- Nema mrežnih zahtjeva – privatnost je zagarantovana.
- Ograničenje veličine postoji zbog memorije preglednika. Prevelike datoteke uzrokuju grešku “This file is too large.”
Alat je idealan za manje i srednje tabele (do nekoliko stotina hiljada redova). Ekstremno velike datoteke treba prethodno filtrirati u Excelu.
Često postavljana pitanja (FAQ)
P: Može li alat da konvertuje više listova odjednom?
Ne. Alat čita samo prvi radni list. Za konverziju ostalih listova morate ih izdvojiti u zasebne XLSX datoteke.
P: Hoće li se formule (npr. SUM) izračunati?
Ne. Alat uzima samo posljednju sačuvanu vrijednost formule. Ako formula nije izračunata prije čuvanja, rezultat će biti prazan ili greška. Preporučuje se da prije konverzije ručno izračunate formule u Excelu i sačuvate datoteku.
P: Šta se dešava sa datumima?
Datumi se pretvaraju u ISO string (npr. "2023-12-31T00:00:00"). Ako želite drugačiji format, morate ga prilagoditi nakon konverzije.
P: Mogu li konvertovati.xls (stari Excel) datoteku?
Ne. Alat podržava samo.xlsx format. Stariji.xls zahtijeva drugačije biblioteke. Prvo konvertujte.xls u.xlsx pomoću Excela.
P: Zašto dobijam grešku “This file has no table rows”?
To se dešava kada prvi radni list nema nijedan red s podacima. Provjerite da li list sadrži podatke i da li su redovi vidljivi (ne skriveni).
P: Hoće li alat izbrisati moje podatke sa servera?
Nema servera – cijela konverzija se obavlja u vašem pregledniku. Podaci se ne šalju nigdje, tako da nema potrebe za brisanjem.