Kas ir Excel (XLSX) pārveidošana uz JSON un kāpēc tā atšķiras no CSV
Rīks Excel-to-JSON ļauj augšupielādēt Excel failu (XLSX) un atgriezt JSON failu, kas satur datus no pirmās darblapas — strukturētas tabulas veidā. Visa apstrāde notiek pārlūkprogrammā, nepievienojot iespēju augšupielādēt failu serverī. Tas nav tas pats, kas pārveidot uz CSV. Lai saprastu atšķirību, jāieskatās abu formātu iekšienē.
XLSX fails patiesībā ir saspiests XML dokumentu kopums. Tajā vairākas darblapas (sheets) glabājas kā atsevišķi XML faili, katrā šūnā ir ne tikai vērtība, bet arī tās tips: teksts, skaitlis, datums, Būla vērtība, formula, formatējuma elementi un pat metadati. CSV savukārt ir tikai teksta rindas — visas šūnas pārvēršas par virknēm, un tipi zūd. JSON ir tipizēts un ligzdots formāts: tas atbalsta objektus (objekti), masīvus (virknes), skaitļus (number), Būla vērtības (true/false) un null. Tāpēc konvertējot no XLSX uz JSON, skaitliskās vērtības (piemēram, 1234 vai 3.14) un Būla vērtības (TRUE/FALSE) tiek saglabātas kā attiecīgie JSON tipi — tās nav jāpārvērš tekstā, kā tas notiek CSV. Datumi ir sarežģītāki: ja Excel šūnas vērtība ir datums, ko Excel atveido kā «01.01.2024», rīks redz tā redzamo vērtību — tekstu — un JSON izvadē tā parādās kā virkne. Taču, ja šūna satur skaitli ar datuma formatējumu (piemēram, 45292), rīks to atstāj kā skaitli, jo formula netiek pārrēķināta — tiek izmantota saglabātā šūnas vērtība. CSV šo skaitli ierakstītu kā “45292” — tekstu. JSON var to paturēt kā skaitli, un tas ir būtiski programmatūrai, kas JSON datus tālāk apstrādā.
Kā darbojas šī rīka konvertēšana
Konvertēšana notiek pilnībā pārlūkprogrammā, izmantojot JavaScript bibliotēku, kas spēj izvērst XLSX faila zip struktūru un nolasīt pirmās darblapas XML saturu. Nav nepieciešams augšupielādēt failu uz serveri — tas paliek lokāli jūsu datorā. Tādējādi tiek nodrošināta privātums: sensitīva informācija, piemēram, klientu dati vai finanšu pārskati, netiek nosūtīta trešajām pusēm.
Rīks lasa tikai pirmo darblapu. Ja jūsu XLSX failā ir vairākas darblapas, pārējās tiek ignorētas. Tas ir apzināts ierobežojums — vienkāršības labad. Ja nepieciešami dati no citām darblapām, jāsagatavo atsevišķs fails katrai vai vispirms jāapvieno tās vienā darblapā.
No katras šūnas tiek nolasīta redzamā vērtība — tā, kuru Excel pēdējā saglabāšanas reizē bija ierakstījis. Formulas netiek aprēķinātas no jauna; tiek ņemts to rezultāts, kāds tas bija faila izveidošanas brīdī. Ja šūna satur kļūdu (piemēram, #DIV/0!), tā tiek atstāta kā virkne “#DIV/0!”.
Apvienotās šūnas, šūnu fonu krāsas, fontu stili, robežlīnijas — tas viss tiek atmests. JSON ir tikai dati un to struktūra. Tāpat netiek saglabāts kolonnu platums, lapas orientācija vai citi vizuālie iestatījumi.
Rezultāts ir JSON fails, kurā katra tabulas rinda tiek attēlota kā objekts ar kolonnu nosaukumiem kā atslēgām. Tā kā XLSX tabula ir plakana, JSON struktūra ir viens masīvs ar objektiem — nav automātiskas ligzdošanas. Ja jūsu Excel dati satur hierarhiju (piemēram, virsraksti vairākās rindās), tā ir jāapstrādā manuāli pirms konvertēšanas.
Ievades un izvades specifikācija
Ievade:
- Viens XLSX fails, ko var vilkt un nomest uz rīka laukuma vai atlasīt, izmantojot failu pārlūku.
- Izvades formāts jāizvēlas kā JSON (rīka saskarnē tas ir iestatīts pēc noklusējuma vai maināms).
Izvade:
- Pārlūks automātiski sāk lejupielādi ar JSON failu.
- Blakus tiek parādīts priekšskatījums (pirmās rindiņas dati), kā arī informācija:
- Konvertēto rindu skaits
- Kolonnu skaits
- Izvadītā JSON faila izmērs baitos
Tas palīdz ātri pārliecināties, ka konvertācija notikusi pareizi, pirms lejupielādēt un izmantot failu tālāk.
Šūnu tipu kartēšana — kā Excel vērtības kļūst par JSON
Lai saprastu, ko jūs saņemsiet JSON failā, jāzina, kā rīks kartē Excel šūnu tipus:
| Excel tips | JSON tips | Piemērs |
|---|---|---|
| Teksts | String (virkne) | “SIA ABC” |
| Skaitlis | Number | 1234,56 |
| Būla (TRUE/FALSE) | Boolean | true vai false |
| Datums ar formatējumu (redzams kā teksts) | String | “2024-01-15” (atkarīgs no reģiona iestatījumiem) |
| Datums kā dienu skaitlis (bez formatējuma) | Number | 45292 |
| Kļūdu vērtība (#N/A, #VALUE! u.c.) | String | “#N/A” |
| Tukša šūna | null | null (jauns JSON vērtības trūkums) |
Svarīgi: Excel neeksistē atsevišķs “datums” tips xlsx iekšējā XML — datumi tiek glabāti kā skaitļi ar formatējuma kodu. Rīks uzrāda redzamo vērtību, tāpēc, ja šūnas formatējums ir “Datums”, redzamā vērtība būs teksts (piemēram, “15.01.2024”), un JSON to saglabās kā string. Savukārt, ja formatējums ir “Vispārīgs” un šūnā ir skaitlis, kas atbilst datumam, tas paliks skaitlis.
Ja skaitliskai kolonnai dažās rindās ir tekstuālas vērtības (piemēram, “N/A”), šie rindiņi JSON būs kā string, bet pārējās kā number — jāņem vērā, ka tas var radīt jauktus tipus vienā kolonnā. Daudzi lietojumprogrammas ar to tiek galā, bet labāk pirms konvertēšanas pārliecināties, ka datu tipi ir konsekventi.
Kļūdu ziņojumi un ierobežojumi
Rīks paredz dažādas robežsituācijas un parāda skaidrus kļūdu ziņojumus:
- “This Excel file could not be opened.” — ja fails ir bojāts, nav īstā XLSX formātā, vai to nevar atvērt. Latviski: “Šo Excel failu nevarēja atvērt.”
- “This file has no table rows.” — ja pirmajā darblapā nav datu rindu (tukša tabula). Tulkojums: “Šajā failā nav tabulas rindu.”
- “This file is too large. Use a file under `‹max›`.” — fails pārsniedz maksimālo izmēru (`‹max›` ir rīka iestatīts limits). Tulkojums: “Šis fails ir pārāk liels. Izmantojiet failu, kas mazāks par `‹max›`.”
- Līdzīgi ierobežojumi ir rindu un kolonnu skaitam: ja pārsniegts `‹max›` rindu vai kolonnu, tiek parādīts atbilstošs ziņojums.
- “Choose a CSV, JSON or XLSX file.” — ja mēģina augšupielādēt cita formāta failu. Tulkojums: “Izvēlieties CSV, JSON vai XLSX failu.”
- “Could not convert this file.” — vispārīga kļūda, ja konvertācija neizdevās nezināma iemesla dēļ.
- “Conversion cancelled.” — ja lietotājs pārtrauc konvertāciju (piemēram, aizver cilni).
- “This conversion is taking too long. Try a smaller file.” — ja apstrāde aizņem pārāk daudz laika.
Šis ierobežojumi ir ieviesti, lai nodrošinātu, ka rīks darbojas stabili pārlūkprogrammas vidē, neapgrūtinot pārāk lielus failus, kas varētu izraisīt atmiņas trūkumu.
Kam šis rīks ir noderīgs
- Web izstrādātājs, kurš saņem produktu datus Excel formātā un vēlas tos iekļaut API vai frontend lietotnē kā JSON — ātrai integrācijai bez papildu bibliotēkām.
- Datu analītiķis, kuram nepieciešams pārveidot ceturkšņa pārskatu (XLSX) mašīnlasāmā JSON formātā tālākai apstrādei Python vai citās analītikas platformās.
- Komanda, kas sadarbojas ar ārējiem partneriem, kuri dod priekšroku JSON nevis Excel — vienreizējai konvertācijai nav jāinstalē īpaša programmatūra.
- Privātuma apzinīgs lietotājs, kurš nevēlas augšupielādēt sensitīvu Excel failu mākoņa serverī, bet vēlas to pārveidot lokāli savā datorā — viss notiek pārlūkā.
Biežāk sastopamās problēmas un padomi
1. Tikai pirmā darblapa tiek izmantota
Ja jūsu XLSX failā ir vairākas darblapas, pārējās tiek ignorētas. Pirms konvertēšanas apvienojiet vajadzīgos datus pirmajā darblapā vai izveidojiet atsevišķus failus katrai.
2. Apvienotās šūnas rada tukšumus
Excel apvienotās šūnas glabā vērtību tikai augšējā kreisajā šūnā, pārējās ir tukšas. Konvertēšanas laikā šie tukšie lauki JSON failā būs null, nevis atkārtota vērtība. Ieteicams pirms konvertēšanas atcelt apvienošanu un aizpildīt šūnas.
3. Tukšas rindas
Ja jūsu darblapā ir pilnīgi tukšas rindas (piemēram, atdalītāji), tās tiks interpretētas kā rindas bez datiem, un JSON failā parādīsies objekti ar null vērtībām visām kolonnām. Pirms konvertēšanas izdzēsiet nevajadzīgās tukšās rindas.
4. Slēptās kolonnas vai rindas
Rīks nolasa visas šūnas no pirmās darblapas, ieskaitot slēptās kolonnas un rindas. Ja vēlaties izslēgt noteiktas kolonnas, vispirms tās dzēsiet vai paslēpšana nepalīdzēs — tas nav tas pats, kas noņemšana. Pirms konvertēšanas noņemiet nevēlamās kolonnas.
5. Datumi kļūst par tekstu vai skaitļiem
Kā minēts, datumi nav viennozīmīgi. Lai nodrošinātu konsekventu JSON, ieteicams Excel šūnas pārveidot par tekstu (formāts “Teksts”) pirms konvertēšanas, ja vēlaties, lai datumi vienmēr būtu virknes formātā. Citādi jāpaļaujas uz to, kā ir formatēta kolonna.
6. Formulu rezultāti nav aprēķināti no jauna
Ja jūsu darblapā ir formulas, kas izmanto datus no citiem avotiem (piemēram, ārējām atsaucēm), tās var nebūt atjauninātas. Pirms konvertēšanas atveriet failu Excel, ļaujiet tam pārrēķināt formulas un saglabājiet jaunā failā.
FAQ (Biežāk uzdotie jautājumi)
J: Kāpēc tiek izmantota tikai pirmā darblapa? A: Rīks ir veidots vienkāršībai. Daudziem lietotājiem nepieciešams konvertēt tikai vienu datu avotu. Ja jums ir vairākas darblapas, varat atkārtot konvertēšanu katram atsevišķi vai iepriekš apvienot tās vienā darblapā (piemēram, izmantojot Excel funkciju “Consolidate”).
J: Vai datumi tiek saglabāti kā skaitļi vai teksts JSON? A: Ja Excel šūnai ir piemērots datuma formatējums, rīks redz tās redzamo tekstu (piemēram, “2024-01-15”) un JSON izvade būs string. Ja formatējums ir “Vispārīgs” un šūnā ir faktiski dienu skaitlis, tad JSON būs number. Pirms konvertēšanas pārbaudiet savu datumu kolonnu.
J: Kas notiek ar formulām? A: Formulas netiek pārrēķinātas. Rīks izmanto pēdējo saglabāto šūnas vērtību, kas var būt skaitlis, teksts vai kļūda. Ja jums nepieciešami aktuāli aprēķina rezultāti, atveriet failu Excel, veiciet pārrēķinu un saglabājiet vēlreiz.
J: Vai faili tiek augšupielādēti serverī? A: Nē. Viss notiek pārlūkprogrammā lokāli. Neviens fails netiek nosūtīts ārpus jūsu datora. Tas ir lieliski privātuma ziņā.
J: Kāpēc manā JSON nav visas kolonnas? A: Iespējams, ka kolonnas ir slēptas vai ir apvienotas šūnas, kuru rezultātā dažas kolonnas izskatās tukšas. Pārbaudiet XLSX faila struktūru. Rīks nolasa visas kolonnas, kas satur datus pirmajā rindā (virsraksti). Ja kolonna ir pilnīgi tukša, tā netiks iekļauta JSON.
J: Vai rīks var pārveidot JSON atpakaļ uz Excel? A: Nē. Šis rīks ir tikai vienvirziena konvertētājs — no XLSX uz JSON. Atpakaļkonvertēšanai būtu nepieciešama cita funkcionalitāte, ko šajā vietnē nepiedāvā.
Ja jūsu XLSX fails ir atbilstoši sagatavots — tikai viena darblapa, bez apvienotām šūnām, bez slēptām kolonnām, ar konsekventiem datu tipiem — šis rīks ātri un privāti pārveidos to JSON, ko varēsiet izmantot jebkurā programmēšanas projektā vai datu apstrādē.