Ce face această pagină
Pe pagina json-to-excel încărcați un fișier JSON și îl convertiți într-un fișier Excel (XLSX). Instrumentul aplatizează automat structura ierarhică a JSON-ului într-un tabel plat: cheile obiectelor devin antete de coloane, tablourile de obiecte devin rânduri, iar cheile imbricate sunt extinse cu nume de căi cu puncte (dot‑path). Puteți previzualiza rezultatul și descărca foaia de calcul finală.
Conversia se face complet în browser – niciun fișier nu este încărcat pe server. Aceasta înseamnă că datele rămân private, iar procesarea este rapidă pentru fișiere de dimensiuni rezonabile. Fișierul de ieșire este un XLSX standard, care poate fi deschis în Excel, LibreOffice Calc, Google Sheets etc.
De ce această pagină este diferită
JSON este un format tipizat și imbricabil – poate conține obiecte, tablouri, numere, valori booleene și null – în timp ce o foaie de calcul plată nu poate reprezenta direct această ierarhie. Conversia aplică o regulă de aplatizare (chei cu cale de puncte) care nu este necesară la convertirea din CSV sau Excel, deoarece acestea sunt deja plate.
Formatul țintă, XLSX, este un workbook XML arhivat (ZIP) care poate stoca nativ tipuri de date precum numere și booleene (spre deosebire de CSV, care reduce totul la text). Totuși, instrumentul nu păstrează nicio formulă sau stilizare de celule; scrie doar datele statice și vizibile din sursa JSON.
Diferența esențială față de un convertor generic „JSON to CSV” este că XLSX păstrează tipurile. De exemplu, un număr 42.5 rămâne număr în Excel, nu devine șirul „42.5”. O valoare true rămâne booleană. Un câmp null se reprezintă ca celulă goală – nu ca șirul „null”.
Cum funcționează aplatizarea JSON-ului
Pentru a fi convertibil, JSON-ul trebuie să fie „în formă de tabel” – un tablou de obiecte sau un tablou de tablouri. Instrumentul tratează fiecare obiect din tablou ca un rând, iar cheile obiectului devin coloane. Dacă obiectele conțin alte obiecte imbricate, cheile sunt aplatizate cu puncte. De exemplu:
[
{
"nume": "Ana",
"adresa": {
"oras": "București",
"strada": "Mihai Viteazul"
}
},
{
"nume": "Ion",
"adresa": {
"oras": "Cluj",
"strada": "Avram Iancu"
}
}
]
devine un tabel cu coloanele nume, adresa.oras, adresa.strada. Fiecare rând reprezintă un obiect.
Dacă un obiect conține un tablou de primitive (de exemplu, telefoane: ["0722...", "0733..."]), acesta devine o singură celulă care conține reprezentarea JSON a acelui tablou — de exemplu, `` ca șir. Aplatizarea recursivă a tablourilor de obiecte în interiorul obiectelor nu este acceptată pentru coloane; în schimb, tabloul imbricat este tratat ca o valoare scalară. Excepția este atunci când nivelul superior este un tablou de tablouri.
Pentru tablourile imbricate în obiecte, comportamentul standard este de a le transforma în coloane multiple sau de a le „exploda” în rânduri suplimentare. Dacă un obiect conține un tablou de obiecte, acel tablou nu este extins în rânduri separate. În schimb, întregul tablou este transformat în șir JSON și plasat într-o singură celulă. De exemplu, [{"id": 1, "items": [{"sku": "A"}, {"sku": "B"}]}] produce un singur rând cu coloanele id și items. Celula items conține [{"sku":"A"},{"sku":"B"}] ca șir. Dacă aveți nevoie de fiecare element pe propriul rând, trebuie să pre-aplatizați datele înainte de a le încărca.
Exemplu de aplatizare cu obiecte adânci
| JSON original | Coloane în Excel |
|---|---|
{ "a": { "b": { "c": 1 } } } într-un tablou |
a.b.c |
{ "x":, "y": "text" } |
x.0, x.1, y |
[ { "id": 1 }, { "id": 2 } ] |
id |
Atenție: dacă un obiect are o cheie a.b, iar altul are o cheie a care este un obiect cu cheia b, coliziunea se rezolvă prin aplatizare.
Tipuri de date și format XLSX
XLSX stochează tipurile de date în celule: șir de caractere, număr, boolean, eroare, gol. JSON oferă number, string, boolean, null, object, array. Instrumentul mapează:
- number → număr (ca valoare numerică IEEE 754)
- string → șir de caractere
- boolean → boolean (true/false în Excel se afișează ca TRUE/FALSE)
- null → celulă goală (niciun conținut)
- object → aplatizat în coloane suplimentare
- array → (dacă este tablou de primitive) devine o singură celulă care conține reprezentarea JSON a acelui tablou.
Un avantaj major al XLSX față de CSV este păstrarea tipurilor. De exemplu, un număr mare (peste 15 cifre) poate fi pierdut în CSV din cauza rotunjirii implicite a Excel, dar în XLSX rămâne exact. Booleenele nu se transformă în „0” sau „1”. Aceasta face instrumentul util pentru analiști care au nevoie de integritatea datelor.
Limitări de formatare
Instrumentul nu calculează formule, nu păstrează stiluri, nu creează foi multiple. Fișierul de ieșire conține un singur worksheet, cu date pure, numit Sheet1. Dacă JSON-ul conține informații despre culori sau fonturi (de exemplu, un obiect { "culoare": "#FF0000", "font": "Arial" }), acestea sunt tratate doar ca șiruri de caractere, nu ca formatare aplicată celulelor.
Cazuri limită și mesaje de eroare
Iată mesajele de eroare specifice, care apar în funcție de conținutul fișierului sau de dimensiunea acestuia:
| Mesaj original (în engleză) | Condiția de apariție |
|---|---|
| „Choose a CSV, JSON or XLSX file.” | S-a selectat un fișier cu altă extensie. |
| „This file is too large. Use a file under ‹max›.” | Fișierul depășește limita maximă de 8 MB. |
| „This JSON is invalid or not table‑shaped.” | JSON-ul nu poate fi analizat sau nu este un tablou de obiecte/tablouri. |
| „This file has no table rows.” | JSON-ul este gol sau tabloul nu conține elemente. |
| „This table has more than ‹max› rows.” | Numărul de rânduri (după aplatizare) depășește limita de 10.000. |
| „This table has more than ‹max› columns.” | Numărul de coloane depășește limita de 200. |
| „Conversion cancelled.” | Utilizatorul a anulat conversia manual. |
| „Această conversie durează prea mult. Încercați un fișier de dimensiuni mai mici.” | Procesarea depășește un timeout de aproximativ 12 secunde. |
Toate aceste mesaje sunt afișate în interfața utilizatorului. Ele acoperă cele mai comune probleme întâlnite la conversia JSON în Excel.
De ce „table‑shaped”?
JSON-ul trebuie să fie un tablou (array) la nivelul superior, iar fiecare element trebuie să fie fie un obiect cu aceleași chei (sau chei similare), fie un tablou de aceeași lungime. Dacă tabloul conține obiecte cu structuri complet diferite (de exemplu, unul cu nume, altul cu varsta), unele coloane vor fi goale, dar conversia funcționează. Dacă un element este un șir sau un număr (nu obiect/tablou), atunci JSON-ul nu este „table‑shaped” și apare eroarea.
Cine are nevoie de acest instrument
- Dezvoltatori care extrag date dintr-o API și vor să le prelucreze într-o foaie de calcul fără a scrie scripturi de aplatizare.
- Analiști de date care primesc fișiere JSON cu structuri imbricate (de exemplu, configurări de aplicații, răspunsuri API) și au nevoie de un tabel plat pentru analiză în Excel sau Power BI.
- Membri ai echipei non-tehnice care colaborează cu colegi ce furnizează date JSON și trebuie să le vadă într-un format accesibil (XLSX).
- Oricine dorește să păstreze tipurile de date (numere, booleene) în loc să le convertească la text, așa cum s-ar întâmpla cu CSV.
Un scenariu tipic: un API returnează un tablou de utilizatori, fiecare cu un obiect imbricat adresa și un tablou de telefoane. Folosind acest instrument, puteți aplatiza adresa și puteți decide cum tratați tabloul de telefoane (de regulă, va fi ignorat sau va cauza o eroare dacă nu este tabelar). Pentru cazuri mai complexe, poate fi necesară preprocesarea JSON-ului înainte de conversie.
Întrebări frecvente
1. Pot converti un JSON cu mai multe tablouri imbricate?
Nu direct. Instrumentul produce o singură foaie plată. Dacă JSON-ul conține tablouri în interiorul obiectelor, acestea trebuie fie să fie ei înșiși tablouri de obiecte (caz în care se aplatizează), fie să fie tablouri de primitive (care nu sunt suportate). De aceea, se recomandă să verificați dacă JSON-ul este „table‑shaped” înainte de încărcare.
2. Se păstrează valorile null în Excel?
Da, celulele corespunzătoare rămân goale. Nu se scrie șirul „null”.
3. Ce se întâmplă dacă fișierul JSON are o dimensiune foarte mare?
Instrumentul are o limită de dimensiune de 8 MB și un timeout de aproximativ 12 secunde. Dacă depășiți limita, primiți mesajul „This file is too large. Use a file under ‹max›.”. Dacă procesarea durează prea mult, conversia este anulată cu mesajul „Această conversie durează prea mult. Încercați un fișier de dimensiuni mai mici.”. Pentru fișiere mari, este mai bine să le divizați în bucăți mai mici.
4. Pot converti un fișier Excel înapoi în JSON folosind această pagină?
Nu. Această pagină face doar conversia JSON → XLSX.
5. De ce în Excel văd coloane cu nume precum adresa.oras?
Pentru că așa se reprezintă ierarhia într-un tabel plat. Punctul indică faptul că oras este o proprietate a obiectului adresa. Puteți redenumi coloanele manual în Excel după descărcare.
6. Pot converti mai multe fișiere simultan?
Nu. Instrumentul acceptă un singur fișier la un moment dat. Dacă aveți mai multe JSON-uri, trebuie să le convertiți unul câte unul.
Acest instrument este o soluție rapidă și ușoară pentru cei care au nevoie de un tabel plat din date JSON, fără a scrie cod sau a instala aplicații. Respectați formatul „table‑shaped” și veți obține un fișier XLSX gata de utilizat.