Bogga JSON-ka u beddelaya Excel (XLSX)
Maxaad ka helaysaa boggan?
Boggan wuxuu kuu ogolaanayaa inaad soo geliso hal fayl JSON ah, kadibna u beddesho fayl Excel ah oo qaabkiisu yahay .xlsx. Marka aad soo gasho JSON-ka, qalabku wuxuu si toos ah u kala fidiyaa (flatten) qaabka kala sareynta (hierarchical) ee JSON-ka si uu uga dhigo miis siman oo fidsan. Halkaas waxaa ka soo baxa tiirar iyo saf. Tiirarku waa madaxyada shayga (object keys), saf kastana waa hal shay (object) oo ka mid ah shaxda JSON-ka ah. Haddii JSON-kaagu leeyahay qaybo dhexgala (nested keys), sida address.city, markaas qalabku wuxuu ku darayaa magaca waddooyinka (dot paths) si loo kala saaro.
Waxaad sidoo kale arki kartaa horfiiri (preview) natiijada (8-da saf ee ugu horreeya iyo 8-da tiir ee ugu horreeya), tirada safka iyo tirada tiirarka ee shaxda la beddelay, iyo cabbirka faylka soo baxa. Kadib waxaad soo dejisan kartaa faylka XLSX-ga ah oo diyaar u ah inaad ku furto Excel ama barnaamijyo kale oo xafiiska ah.
Waa maxay sababta boggan uga duwan yahay?
JSON waa luuqad kala sareyn leh (nested). Wuxuu ka koobnaan karaa shay (object), shax (array), tiro (number), run/been (boolean), iyo null. Laakiin shaxda Excel-ku waa miis fidsan oo aan kala sareyn lahayn. Marka aad ka soo gasho JSON, waa inaad kala fidisaa qaabka kala sareynta si aad u hesho miis shaqeyn kara.
Faraqa weyn ee boggani waa sida uu u kala fidiyaa JSON-ka: wuxuu isticmaalaa magacyada waddoo (dot paths). Tusaale ahaan, haddii JSON-kaagu yahay { "magac": "Ali", "cinwaan": { "magaalo": "Muqdisho", "waddo": "Jidka X" } }, markaas tiirarada soo baxaya waa magac, cinwaan.magaalo, iyo cinwaan.waddo. Tan waxay ka duwan tahay kuwa kale sida CSV-ga, sababtoo ah CSV-gu waa horay u fidsan yahay, ma jiro wax kala sareyn ah oo loo baahan yahay in la fidiyaa.
Waxaa kale oo muhim ah in XLSX (qaabka soo baxa) uu awood u leeyahay inuu kaydiyo noocyada xogta sida tirooyinka iyo boolean-ka, halka CSV-gu uu wax walba ku kaydiyo qoraal (text). Marka haddii aad rabto inaad ilaaliso nooca xogta (tusaale, tirooyin aan loo beddelin qoraal), waa inaad isticmaasho XLSX.
Si kastaba ha ahaatee, qalabkani ma qoro qaacidooyin (formulas) mana ilaaliyo qaabaynta (formatting) sida midabka ama xajmiga. Wuxuu qoraa oo kaliya xogta cad ee laga helay JSON-ka.
Habka shaqada - JSON u beddelidda XLSX
Marka aad soo geliso fayl JSON, qalabku wuxuu marka hore akhriyaa qaabka JSON-ka. Waa inuu ahaadaa "miis-qabe" (table-shaped), taas oo macneheedu yahay shax shay (array of objects) ama shax shax (array of arrays). Shay keliya (single object) waa la aqbalaa – wuxuu u beddelaa miis hal saf ah. Waxa fashilma waa fayl aan ahayn JSON sax ah gabi ahaanba – sida comma dheeraad ah, xargo hal-quote ah, ama bracket aan xirnayn – taas oo soo saarta fariinta "JSON-gani waa khaldan yahay ama miis ma aha."
Kadib, wuxuu u beddelaa shay kasta oo ka tirsan shaxda uu yahay saf. Madaxa tiirarku waa magacyada guryaha (property names) oo laga soo xulay shay kasta. Haddii shay leeyahay guri dhexgal (object), magaciisa waa la darayaa dot path (tusaale: address.city). Haddii qiimuhu yahay shax tirooyin ah, wuxuu noqonayaa hal unug oo ka kooban matalaadda JSON ee shaxdaas – tusaale, `` oo ah xarig. Kala fidinta dib-u-celinta ee shaxda shayada gudaha shayada lama taageero tiirarka; halkii shaxda dhex-galka ah waxaa loo tixgeliyaa qiime scalar ah. Marka laga reebo waa marka heerka sare uu yahay shax shax ah, oo hoos lagu sharaxay.
Haddii JSON-kaagu yahay shax shax (array of arrays), tusaale [ ["a","b"], ["c","d"] ], markaas qalabku wuxuu u arkaa in shax kastaa yahay saf. Tiirarku markaas ma laha madax saf ah – shaxda koowaad ee gudaha ah waa safka koowaad ee xaashida. Ma dhacdo kala fidinta shaxda dhex-galka ah sababtoo ah ma jiraan furayaal la isku daro. Shaxda heerka sare ah xitaa waxay isku dari kartaa shayada iyo qiimayaasha kale: shay kasta oo aan ahayn shay waxaa la dhigaa tiir lagu magacaabo value (shaxda waxay halkaas ku degtaa sida qoraalkeeda JSON).
Qalabku wuxuu soo saaraa fayl XLSX ah oo ka kooban hal xaashi (worksheet). Xaashida waxaa loo magacaabaa Sheet1. Noocyo badan oo xaashi ah ama qaabaynta sare looma soo saaro.
Shuruudaha iyo xuduudaha
Waa kuwan qaababka xogta iyo xannibaadyada:
-
Cabbirka faylka: Waa in la soo geliyo hal fayl oo keliya mar. Faylka waa inuu ka yar yahay 8 MB. Haddii uu weynaado, waxaa soo baxa fariinta "Faylkani aad buu u weyn yahay. Isticmaal fayl ka yar ‹max›."
-
Nooca faylka: Kaliya JSON waa la aqbali karaa. Haddii aad soo gasho nooc kale, waxaa soo baxa "Dooro fayl CSV, JSON ama XLSX ah."
-
Qaabka JSON-ka: Waa inuu yahay "miis-qabe". Haddii JSON-ku yahay mid aan sax ahayn ama aan miis ahayn, waxaa soo baxa "JSON-gani waa khaldan yahay ama miis ma aha."
-
Tirada safka: Haddii ay jiraan in ka badan 10,000 saf, waxaa soo baxa "Shaxdani waxay leedahay in ka badan ‹max› saf." Sidoo kale tiirarka: "Shaxdani waxay leedahay in ka badan ‹max› tiir."
-
Faahfaahin dheeraad ah: Haddii aanay jirin safo (shax maran), waxaa soo baxa "Faylkani ma laha safo miis ah."
-
Joogista shaqada: Haddii aad joojiso beddelidda, waxaa soo baxa "Beddeliddii waa la joojiyay."
-
Muddo dheer: Haddii beddelidda ay qaadato in ka badan 12 ilbiriqsi, waxaa soo baxa "Beddeliddan waxay qaadanaysaa waqti dheer. Isku day fayl yar."
-
Null iyo qiimo maqan: Guryaha null-ka ah (null) ama aan jirin (missing) ee ku jira shayga, waxay ka dhigan yihiin tiirarka u dhigma unugyo madhan (empty cells) oo Excel-ka ah. Tani waa caadi, sababtoo ah Excel wuxuu u oggol yahay unugyo madhan.
-
Tirooyinka iyo booleanka: Tirooyinka sida 42 ama 3.14 waxay ku soo galaan Excel-ka iyagoo tiro ah (number type), ma aha qoraal. Booleanka (true/false) waxay ku soo galaan iyagoo boolean ah. Tan waxay ka duwan tahay CSV-ga, halkaas oo wax walba loo beddelo qoraal.
Cidda u baahan qalabkan
Qalabkani wuxuu u fiican yahay:
- Qof kasta oo haysta xog JSON ah (tusaale, ka soo baxday API ama fayl qaabeyn) oo raba inuu u beddelo Excel si uu u falanqeeyo ama u la wadaago dad kale.
- Falanqeeyayaal xogta (data analysts) oo doonaya inay kala fidiyaan JSON-ka isagoo aan qorin kood gaar ah (tusaale, Python ama JavaScript).
- Qof aan rabin inuu lumiyo noocyada xogta sida tirooyinka iyo booleanka. CSV-gu wuxuu u rogaa wax walba qoraal, taas oo keenta khaladaad marka la falanqeynayo.
- Xubnaha kooxda oo hela faylal JSON ah, laakiin waa inay la shaqeeyaan dadka isticmaala Excel. Beddeliddani waxay u sahleysaa wada shaqaynta.
Qaar ka mid ah mawduucyada faahfaahsan
1. Fahamka qaabka JSON-ka
JSON waxaa uu ka kooban yahay noocyada:
- Object ({...}) - waxaa ku jira lammaane key:value.
- Array ([...]) - waxaa ku jira shax qiime ah, oo noqon kara shay, tiro, qoraal, iwm.
- String (qoraal), Number, Boolean, Null.
Nested-ku waa marka object-ku ku jiro object kale, sida {"address":{"city":"Muqdisho"}}.
2. Kala fidiya JSON-ka (flattening) iyo dot paths
Marka aad kala fidiso, guri kasta oo dhexgal ah waxaa la darayaa magaca guriga hoose iyadoo la isticmaalayo dhibic. Tusaale:
{
"name": "Ali",
"address": {
"city": "Muqdisho",
"location": {
"lat": 2.0,
"lon": 45.0
}
}
}
Waxay noqonaysaa tiirar:
name(qoraal)address.city(qoraal)address.location.lat(tiro)address.location.lon(tiro)
Haddii dhowr shay oo kala duwan ay leeyihiin guryo kala duwan, tiirarku waa isku darka dhammaan guryaha laga helay shay kasta. Haddii shay uu ka maqan yahay guri, unuggaas waa madhan.
3. Noocyada xogta: JSON vs Excel (XLSX)
XLSX waa qaab fayl oo ku salaysan XML-ka oo la isku duubay (zipped). Wuxuu awood u leeyahay inuu kaydiyo:
- Number (sida 42.5) - waxaa loo kaydiyaa sida tiro.
- Boolean (true/false) - waxaa loo kaydiyaa sida boolean.
- String (qoraal) - waxaa loo kaydiyaa sida qoraal.
- Null - waa unug madhan.
Faylka XLSX-ga ee soo baxa, tiro kasta oo ka timid JSON-ka wuxuu ku soo baxaa sida tiro, boolean-ku sida boolean. Tan waxay ka caawinaysaa in falanqaynta xogta ay si sax ah u shaqeyso (tusaale, isku darka tirooyinka).
4. Daryeelka xogta qofka (privacy)
Isticmaalka qalabkan, beddelidda waxay ka dhacdaa browser-kaaga. Ma jiro fayl la soo galiyo server-ka kale. Tan macneheedu waa xogtaadu waxay ku dhex jirtaa kumbuyuutarkaaga oo keliya; ma jiro wax la soo qaado ama la kaydiyo meel kale. Tani waxay muhiim u tahay haddii aad la shaqeyneyso xog qarsoon ama xog shirkadeed.
5. Xaddidaadaha miis fidsan
Miis fidsan (flat table) wuxuu ku fiican yahay xog aan kala sareyn lahayn. Laakiin JSON-ka oo leh shaxyo dhexgal (array of objects gudaha object) waa adag tahay in si fiican loo fidiyaa. Tusaale, haddii shay ku jiro shax shaqaale ah, sida {"name":"Xasan","employees":[{"name":"Ali"},{"name":"Faadumo"}]}, fidiyaa keliya wuxuu soo saari karaa hal saf oo keliya, ama waa in la kala qaybiyaa shaxyo kala duwan. Marka la eego, waa in la hubiyaa in JSON-kaagu uu yahay shax shay oo dhan (array of objects), oo shay kastaa uu yahay hal saf.
6. Shax shax (array of arrays)
Haddii aad soo gasho JSON-ka ah shax shax, tusaale [["a", 1], ["b", 2]], qalabku wuxuu u arkaa shax kasta oo hoose inuu yahay saf. Tiirarka waxaa loo magacaabaa iyadoo la isticmaalayo tusaha (index): 0, 1, 2, iwm. Tan waxay ku fiican tahay xog aan lahayn magacyo tiirar ah.
Su'aalo inta badan la weydiiyo
1. Ma shaqeyn karaa JSON-ka aan ahayn shax shay (object array)?
Haa, laakiin waa inay tahay shax shay (array) ama shax shax. Shay keliya (single object) waa la soo saari karaa hal saf. Talo: haddii aad haysato shay keliya, ku xidh shax [... ].
2. Maxaa dhacaya haddii shay kasta uu leeyahay guryo kala duwan? (Heterogeneous objects)
Tiirarka shaxda soo baxaysa waxay noqon doonaan isku darka dhammaan magacyada guryaha laga helay shay kasta. Guryaha ka maqan shay gaar ah, unuggeeda waxaa laga buuxinayaa madhan (empty). Tan macneheedu waa miisku wuu buuxin karaa unugyo badan oo madhan, laakiin way shaqeynaysaa.
3. Ma beddeli karaa JSON-ka soo baxay ama ma kala saari karaa?
Ka dib markaad soo dejiso faylka XLSX, waxaad ku furi kartaa Excel ama barnaamijyo kale oo xaashida ah, waxaadna ku samayn kartaa beddelaad kasta (qaabayn, qaacidooyin, iwm). Laakiin inta lagu jiro beddelidda online-ka, ma jiro fursad aad wax ku beddesho.
4. Waa maxay xadka ugu weyn ee faylka?
Faylka waa inuu ka yar yahay 8 MB. Haddii faylku weynaado, isku day inaad u kala gooyso qaybo yaryar.
5. Ma shaqeynayaa beddelka iyadoo aan internet la hayn?
Haa, caadi ahaan beddelku wuxuu ka dhacayaa browser-ka (client-side