XLSX файлын JSON-ға түрлендіру: браузердегі жылдам әрі қауіпсіз әдіс
Excel (XLSX) файлын JSON-ға түрлендіру CSV-ге түрлендірумен бірдей емес. XLSX – сығылған XML жұмыс кітабы, оның ішінде бірнеше парақ, ұяшық түрлері (мәтін, сан, күн, логикалық), формулалар және бай форматтау сақталады. JSON болса, теріптелген, ұяластырылатын формат: ол объектілерді, массивтерді, сандарды, логикалық мәндерді және null-ді қолдайды. Сондықтан XLSX-тен JSON-ға түрлендіру кезінде сандық және логикалық ұяшық мәндері тырнақшаға алынбай, тікелей JSON типтері ретінде сақталады. CSV барлық жолды жай мәтіндік жолға тегістесе, JSON кесте құрылымын баған атауларын кілт ретінде қалдырып, объектілер массиві ретінде көрсете алады. Алайда XLSX кестесінің өзі жалпақ, яғни ұяластырылған JSON құрылымдары автоматты түрде жасалмайды.
Бұл бетте сіз Excel (XLSX) файлын жүктеп, бірінші жұмыс парағының деректерін құрылымдық кесте ретінде JSON файлына айналдыра аласыз. Түрлендіру толығымен сіздің браузеріңізде орындалады – ешбір файл серверге жүктелмейді.
Неліктен XLSX-тен JSON-ға түрлендіру ерекше?
Жоғарыда айтылғандай, бұл процесс CSV-ге түрлендіруден түбегейлі ерекшеленеді. XLSX ішінде әр ұяшықтың өзінің деректер типі бар. Мысалы, Excel санды «123» деп сақтайды, бірақ JSON-да бұл жай сан (number) болады, ал CSV-де ол тырнақшадағы мәтін (string) ретінде жазылады. Бұл JSON-ды машиналық өңдеуге әлдеқайда ыңғайлы етеді. Сонымен қатар, формулалар есептелмейді – тек соңғы сақталған нәтиже көрсетіледі. Бұл көптеген пайдаланушылар үшін тосын сый болуы мүмкін: Excel-дегі формулалар тірі емес, олар тек бір рет есептелген мән ретінде сақталады.
Кірістер мен шығыстар
Кірістер:
- Бір XLSX файлы (суйреп апару немесе файл таңдау терезесі арқылы).
- Шығыс форматы JSON етіп орнатылуы керек.
Шығыстар:
- Жүктеуге дайын JSON файлы.
- Нәтиженің алдын ала көруі.
- Түрлендірілген кестедегі жолдар мен бағандар саны.
- Шығыс JSON файлының көлемі.
Ережелер мен шекті жағдайлар
Құрал XLSX файлының тек бірінші жұмыс парағын оқиды. Егер сізге басқа парақтардан деректер қажет болса, оларды бөлек түрлендіруіңіз керек. Көрінетін мәндер пайдаланылады; формулалар есептелмейді – формула ұяшығының нәтижесі соңғы сақтау кезіндегі мән болып қалады. Ұяшық стильдері, біріктірілген ұяшықтар және форматтау (қаріптер, түстер, жиектер) сақталмайды.
Егер XLSX файлын талдау мүмкін болмаса, мына қате пайда болады: “This Excel file could not be opened.” (Бұл Excel файлын ашу мүмкін болмады). Егер бірінші жұмыс парағында деректер жолдары болмаса, “This file has no table rows.” (Бұл файлда кесте жолдары жоқ) деген хабарлама шығады. Файл өлшемі мен жол/баған санына шектеулер бар: егер файл ‹max› өлшемінен асып кетсе, “This file is too large. Use a file under ‹max›.” (Бұл файл тым үлкен. ‹max› астындағы файлды пайдаланыңыз) көрсетіледі. Сол сияқты, егер кестеде ‹max› жол немесе ‹max› бағаннан көп болса, сәйкес қате хабарланады. Басқа қателерге мыналар жатады: “Choose a CSV, JSON or XLSX file.”, “Could not convert this file.”, “Conversion cancelled.” және “This conversion is taking too long. Try a smaller file.”
Бұл кімге қажет?
- Веб-әзірлеуші: Excel кестесінде өнім деректерін алады, оны API немесе фронт-энд қосымшасы үшін JSON-ға айналдырады.
- Деректер аналитикі: тоқсандық есепті (XLSX) машиналық өңдеуге ыңғайлы JSON форматына тез түрлендіреді.
- Команда: сыртқы серіктестер JSON-ды қалайды, бірақ сізде Excel бар; бағдарламаны орнатпай-ақ бір реттік түрлендіру қажет.
- Құпиялықты бағалайтын кез келген адам: XLSX файлын бұлтты қызметке жүктемей-ақ браузерде түрлендіреді.
XLSX файлының ішкі құрылымы
XLSX – бұл ZIP архиві. Оның ішінде XML файлдары мен қосымша ресурстар сақталады. Әрбір жұмыс парағы (worksheet) жеке XML файлы ретінде орналасады. Ұяшықтардың мәндері мен түрлері (типтері) осы XML ішінде кодталады. Мысалы, <v>123</v> — сандық мән, ал <v>TRUE</v> — логикалық мән. Форматтау туралы ақпарат (шрифт, түс, жиектер) басқа XML файлдарында сақталады. Құрал тек деректерді шығарады, форматтауды елемейді.
JSON форматының синтаксисі
JSON – мәтінге негізделген жеңіл деректер алмасу форматы. Ол екі негізгі құрылымды пайдаланады:
- Объект: жұптар жиынтығы (кілт-мән). Мысалы:
{"аты": "Айгүл", "жасы": 30} - Массив: реттелген мәндер тізімі. Мысалы:
["Айгүл", "Бекзат", "Сәуле"]
Мәндер былай болуы мүмкін: жол, сан, логикалық, null, объект немесе массив.
Түрлендіру кезінде XLSX кестесінің әрбір жолы JSON массивіндегі бір объектіге айналады. Баған атаулары осы объектілердің кілттері болады. Мысалы:
[
{"Аты": "Айгүл", "Жасы": 30, "Қала": "Алматы"},
{"Аты": "Бекзат", "Жасы": 25, "Қала": "Нұр-Сұлтан"}
]
Ұяшық типтерін салыстыру
Төмендегі кестеде Excel ұяшық типтерінің JSON-ға қалай салыстырылатыны көрсетілген:
| Excel типі | JSON типі | Мысал (Excel) | Мысал (JSON) |
|---|---|---|---|
| Мәтін | String (жол) | «Сәлем» | "Сәлем" |
| Сан | Number (сан) | 123,45 | 123.45 |
| Бүтін сан | Number (сан) | 100 | 100 |
| Логикалық | Boolean (логикалық) | TRUE | true |
| Күн | String (жол) | 01.01.2024 | "2024-01-01T00:00:00.000Z" (ISO 8601) |
| Қате | Null | #N/A | null |
Күндер ISO 8601 форматында жол ретінде шығарылады. Excel күнді ішкі сан ретінде сақтайды (1900 жылдан бастап күндер саны), бірақ JSON-да адам оқи алатын форматқа айналдырылады. Бұл кейбір қосымшаларда күнді дұрыс өңдеу үшін маңызды.
Неліктен формулалар жоғалады?
Excel формулалары (мысалы, =A1+B1) тікелей JSON-ға аударылмайды. Себебі JSON – бұл статикалық деректер форматы, онда «есептеу» түсінігі жоқ. Формуланың нәтижесі – оның соңғы есептелген мәні. Бұл мән XLSX файлында сақталады және дәл сол мән JSON-ға көшіріледі. Егер сізге формулалардың өзін сақтау қажет болса, XLSX-ті басқа форматқа (мысалы, XML) түрлендіру керек не формулаларды жеке мәтін ретінде қосу қажет.
Бір ғана жұмыс парағының шектеуі
Көптеген Excel жұмыс кітаптары бірнеше парақтан тұрады. Алайда бұл құрал тек бірінші парақты өңдейді. Неге? Себебі JSON бір парақтың деректерін ғана көрсете алады. Егер сізге бірнеше парақтан деректер қажет болса, әр парақты бөлек файл ретінде сақтап, содан кейін әрқайсысын жеке түрлендіруге болады. Немесе барлық парақтарды бір кестеге біріктіру қажет.
Клиент жағындағы өңдеу
Барлық түрлендіру сіздің браузеріңізде JavaScript көмегімен жүзеге асады. XLSX файлы серверге жіберілмейді. Бұл әдістің басты артықшылығы – құпиялылық пен жылдамдық. Сіздің деректеріңіз тек сіздің компьютеріңізде қалады. Сонымен қатар, интернет жылдамдығына тәуелділік жоқ. Файл өлшемі шектелген болса да, бұл тек браузердің мүмкіндіктеріне байланысты.
Түрлендіруден кейінгі деректерді тексеру
JSON файлын алғаннан кейін бірнеше нәрсені тексерген жөн:
- Біріктірілген ұяшықтар: Excel-дегі біріктірілген ұяшықтар әдетте бос қалады, себебі олардың мәні тек бір ұяшықта сақталады. Нәтижесінде JSON-да қосымша
nullмәндер пайда болуы мүмкін. - Бос жолдар: Excel-дегі бос жолдар JSON-да бос объектілер ретінде шығады. Оларды алып тастау үшін түрлендіруден кейін сүзу қажет.
- Жасырын бағандар: Excel-де жасырын бағандардың мәндері JSON-да көрсетіледі. Егер бұл деректерді жасырғыңыз келсе, алдымен оларды жойыңыз.
Альтернативті кесте пішіндері
Кейде Excel кестелері тікбұрышты емес болады. Мысалы, тақырыптар бірнеше жолды алады немесе деректер әртүрлі бағандарда орналасады. Мұндай жағдайда құрал бірінші жолды тақырып ретінде қабылдайды, ал қалғандарын деректер деп санайды. Егер кестеңізде бірнеше тақырып жолы болса, оларды біріктіріп, бір жолға келтіру керек.
Жиі қойылатын сұрақтар
1. Менде бірнеше парақтан тұратын XLSX файлы бар. Барлық парақтарды JSON-ға қалай түрлендіремін? Әр парақты жеке XLSX файлы ретінде сақтаңыз, содан кейін әрқайсысын бөлек түрлендіріңіз. Немесе барлық парақтарды бір кестеге біріктіріңіз.
2. Неліктен формулалар есептелмейді? JSON статикалық формат. Ол формуланы емес, тек нәтижені сақтай алады. XLSX файлында формуланың соңғы есептелген мәні сақталады, сол мән JSON-ға көшіріледі.
3. Менің XLSX файлымда күндер бар. Олар JSON-да қалай көрсетіледі?
Күндер ISO 8601 форматындағы жол ретінде шығарылады (мысалы, "2024-01-01T00:00:00.000Z"). Бұл күнді көптеген бағдарламалау тілдерінде өңдеуге ыңғайлы.
4. Файл өлшеміне қандай шектеулер бар?
Файл ‹max› өлшемінен аспауы керек, ал кестеде ‹max› жол мен ‹max› бағаннан аспауы керек. Егер бұл шектеулер бұзылса, қате хабарламасы көрсетіледі.
5. Менің деректерім қауіпсіз бе? Иә. Барлық түрлендіру сіздің браузеріңізде жүзеге асады. Ешбір деректер серверге жіберілмейді.
6. Түрлендіру қанша уақыт алады? Бұл файл өлшеміне байланысты. Кішкентай файлдар бірнеше секундта түрленеді. Егер түрлендіру көп уақыт алса, “This conversion is taking too long. Try a smaller file.” деген хабарлама пайда болуы мүмкін. Мұндай жағдайда кішірек файлды пайдаланыңыз.