Excel से JSON कन्वर्टर
XLSX, XLS, ODS और CSV फ़ाइलों को सीधे अपने ब्राउज़र में JSON में बदलें। एक शीट चुनें, विकल्प सेट करें, फिर कॉपी या डाउनलोड करें। फ़ाइलें कभी अपलोड नहीं होतीं।
अपनी Excel या CSV फ़ाइल यहाँ छोड़ें
या
समर्थित: .xlsx · .xls · .ods · .csv
🔒 निजी: आपकी फ़ाइल लोकली पढ़ी जाती है और कभी अपलोड या स्टोर नहीं होती। पेज लोड होने के बाद ऑफ़लाइन भी काम करता है।
Excel to JSON क्या करता है?
Excel to JSON रूपांतरण स्प्रेडशीट डेटा को एक मशीन-पठनीय फ़ॉर्मैट में बदल देता है, जिसे डेवलपर, डेटा इंजीनियर और विश्लेषक API, डेटाबेस, स्क्रिप्ट और कॉन्फ़िगरेशन फ़ाइलों को फ़ीड करने के लिए इस्तेमाल करते हैं। यह टूल आपकी स्प्रेडशीट को पूरी तरह डिवाइस पर ही SheetJS लाइब्रेरी से पढ़ता है, इसलिए आपका डेटा आपके कंप्यूटर से कभी बाहर नहीं जाता।
आउटपुट फ़ॉर्मैट गाइड
| मोड | कब इस्तेमाल करें | उदाहरण आउटपुट |
|---|---|---|
| Array of objects | REST API, डेटाबेस, अधिकांश डेटा प्रोसेसिंग | [{"Name":"Alice","Score":95}] |
| Array of arrays | ग्रिड-आधारित प्रोसेसिंग, स्प्रेडशीट प्रतिबिंब | [["Name","Score"],["Alice",95]] |
| Minified | कोड या पेलोड में JSON एम्बेड करना | कोई खाली जगह नहीं, सबसे छोटा फ़ाइल आकार |
| Indented 2/4 स्पेस | पठनीयता, वर्शन-कंट्रोल डिफ़ | प्रिटी-प्रिंटेड, एक की प्रति पंक्ति |
स्प्रेडशीट फ़ॉर्मैट: XLSX, XLS, ODS और CSV के अंदर असल में क्या है
यह टूल जो चार फ़ॉर्मैट पढ़ता है वे किसी फ़ाइल-पिकर में एक जैसे दिखते हैं पर अंदर से बहुत अलग बने होते हैं — यही वजह है कि इन सबको पढ़ने के लिए SheetJS जैसी लाइब्रेरी ज़रूरी है:
| फ़ॉर्मैट | यह क्या है |
|---|---|
.xlsx | Office Open XML (ECMA-376 / ISO/IEC 29500 के रूप में मानकीकृत)। एक ही आइकन के बावजूद, एक XLSX फ़ाइल असल में XML दस्तावेज़ों का एक ZIP आर्काइव है — हर शीट के लिए एक भाग, साथ ही साझा स्ट्रिंग्स, स्टाइल और रिलेशनशिप। किसी कॉपी का नाम बदलकर .zip कर दें और आप उसे खोलकर भाग देख सकते हैं। |
.xls | पुराना Excel 97–2003 फ़ॉर्मैट, एक प्रोप्रायटरी बाइनरी संरचना जिसे BIFF (Binary Interchange File Format) कहते हैं। यह XML नहीं है और मानव-पठनीय भी नहीं; इसे रिकॉर्ड-दर-रिकॉर्ड डिकोड करना पड़ता है। |
.ods | OpenDocument Spreadsheet (ISO/IEC 26300), वह फ़ॉर्मैट जो LibreOffice इस्तेमाल करता है और Google Sheets से एक्सपोर्ट किया जा सकता है। XLSX की तरह यह भी XML का ZIP है, पर Microsoft के बजाय खुले OpenDocument स्कीमा का पालन करता है। |
.csv | Comma-Separated Values (RFC 4180 द्वारा ढीले-ढाले तौर पर मानकीकृत)। सबसे सरल संभव फ़ॉर्मैट — सादा टेक्स्ट, एक पंक्ति प्रति रो, फ़ील्ड कॉमा से अलग — पर टाइप, शीट, फ़ॉर्मूला या फ़ॉर्मैटिंग की कोई धारणा नहीं। यह बस ग्रिड है। |
क्योंकि XLSX, XLS और ODS हर एक कच्चे सेल्स से कहीं ज़्यादा संग्रहित करते हैं — फ़ॉर्मूले, नंबर फ़ॉर्मैट, कई शीट, स्टाइल — इसलिए JSON में बदलने का मतलब है यह तय करना कि क्या रखा जाए। यह टूल गणना किए गए सेल मानों (फ़ॉर्मूले का परिणाम, फ़ॉर्मूला-टेक्स्ट नहीं) को रखता है और स्टाइलिंग हटा देता है, जो ठीक वही है जो आप चाहते हैं जब लक्ष्य डेटा को कोड में फ़ीड करना हो।
JSON क्यों?
JSON (JavaScript Object Notation) को 2000 के दशक की शुरुआत में Douglas Crockford ने निर्दिष्ट किया और अब यह सिस्टमों के बीच संरचित डेटा भेजने की साझा भाषा है। इसे ECMA-404 और IETF RFC 8259 के रूप में मानकीकृत किया गया है, और यद्यपि यह JavaScript की ऑब्जेक्ट सिंटैक्स से निकला, यह पूरी तरह भाषा-स्वतंत्र है — हर बड़ी प्रोग्रामिंग भाषा इसे पढ़-लिख सकती है। इसकी ख़ूबी यह है कि यह उन्हीं डेटा संरचनाओं पर साफ़-साफ़ मैप हो जाता है जिन्हें प्रोग्राम पहले से इस्तेमाल करते हैं: ऑब्जेक्ट (की/वैल्यू जोड़े), array (क्रमबद्ध सूचियाँ), और कुछ आदिम टाइप — string, number, boolean और null।
एक स्प्रेडशीट, वैचारिक रूप से, हेडर पंक्ति सहित मानों का एक ग्रिड है, जो स्वाभाविक रूप से JSON के "array of objects" आकार में बदल जाता है — हर पंक्ति कॉलम हेडरों से की-वाली एक ऑब्जेक्ट। यही वजह है कि JSON किसी REST API को स्प्रेडशीट डेटा भेजने, डेटाबेस सीड करने, किसी चार्ट या टेम्पलेट को चलाने, या कॉन्फ़िगरेशन स्टोर करने के लिए पसंदीदा फ़ॉर्मैट है। हालाँकि, एक चीज़ जो JSON में जानबूझकर नहीं है वह है date टाइप और टिप्पणियों (comments) की कोई अवधारणा — जो सीधे नीचे दी गई रूपांतरण मुश्किलों की ओर ले जाती है।
सावधानियाँ: तारीख़ें, संख्याएँ और टाइप
स्प्रेडशीट-से-JSON रूपांतरण में अधिकांश आश्चर्य इस तथ्य से आते हैं कि Excel मानों को उससे बहुत अलग तरीक़े से संग्रहित करता है जैसे वह उन्हें दिखाता है। इन पर ध्यान दें:
- तारीख़ें असल में संख्याएँ हैं। Excel किसी तारीख़ को एक सीरियल नंबर के रूप में
संग्रहित करता है — (प्रभावी रूप से) 30 दिसंबर 1899 के युग से दिनों की गिनती — और केवल सेल का
फ़ॉर्मैट उसे तारीख़ जैसा दिखाता है। तो "15/03/2024" दिखाने वाला सेल
45366जैसी सादी संख्या में बदल सकता है। एक मशहूर विचित्रता भी है: Excel जानबूझकर 1900 को लीप वर्ष मानता है (यह नहीं है — 1980 के दशक में फ़ाइल संगतता के लिए Lotus 1-2-3 से विरासत में मिली एक बग), इसलिए 28 फ़रवरी 1900 के बाद की हर सीरियल तारीख़ भोली गणना से एक दिन "अलग" रहती है। यदि आपकी तारीख़ें संख्याओं के रूप में निकलें, तो पहले स्रोत कॉलम को text के रूप में फ़ॉर्मैट करें, या JSON को पोस्ट-प्रोसेस करके सीरियल को ISO तारीख़ों में बदलें। - आगे लगे शून्य ग़ायब हो जाते हैं।
007890जैसा कोई PIN कोड या खाता नंबर7890बन जाता है यदि Excel ने उसे संख्या के रूप में संग्रहित किया हो। शून्य बनाए रखने के लिए बदलने से पहले ऐसे कॉलमों को स्प्रेडशीट में text के रूप में फ़ॉर्मैट करें। - बड़ी संख्याएँ परिशुद्धता खो देती हैं। JSON संख्याएँ (और JavaScript) 64-बिट फ़्लोटिंग पॉइंट इस्तेमाल करते हैं, जो केवल लगभग 15–16 सार्थक अंकों तक ही सटीक है। संख्या के रूप में संग्रहित 16-अंकों वाला कार्ड नंबर या कोई लंबा ID गोल हो सकता है; उन्हें text के रूप में रखें।
- वैज्ञानिक संकेतन (scientific notation)। कोई लंबा संख्यात्मक स्ट्रिंग जिसे Excel ने
संख्या मान लिया,
1.23457E+14के रूप में दिख सकता है। फिर वही उपाय — कॉलम को text के रूप में संग्रहित करें ताकि इसे किसी मात्रा के बजाय लेबल माना जाए।
मोटा नियम: कोई भी चीज़ जो किसी मात्रा के बजाय एक पहचानकर्ता (identifier) है — ID, कोड, फ़ोन नंबर, पिनकोड — उसे बदलने से पहले स्प्रेडशीट में text के रूप में संग्रहित करना चाहिए, ताकि वह एक विश्वसनीय स्ट्रिंग के रूप में सफ़र पूरा कर सके।
CSV की मुश्किलें: डिलिमिटर, कोटिंग और एन्कोडिंग
CSV की सरलता कुछ जाल छिपाए रखती है जिनसे XLSX संरचित होने के कारण बच जाता है:
- मानों के अंदर कॉमा।
Mumbai, Maharashtraजैसे फ़ील्ड में डिलिमिटर ख़ुद मौजूद है। RFC 4180 इसे ऐसे फ़ील्डों को डबल कोट्स में लपेटकर संभालता है ("Mumbai, Maharashtra"), और कोटेड फ़ील्ड के अंदर का कोट दोगुना कर दिया जाता है ("")। जो पार्सर सिर्फ़ कॉमा पर तोड़ता है वह इस पर टूट जाएगा — सही CSV पार्सिंग कोटिंग का सम्मान करती है, यही वजह है कि CSV को किसी भोले स्प्लिटर में चिपकाना अक्सर पतों को बिगाड़ देता है। - डिलिमिटर हमेशा कॉमा नहीं होता। जिन क्षेत्रों में कॉमा दशमलव विभाजक होता है (यूरोप का अधिकांश), वहाँ स्प्रेडशीट अक्सर उसके बजाय सेमीकोलन डिलिमिटर के साथ एक्सपोर्ट करती हैं। यदि कोई CSV एक ही मोटे कॉलम में बदल जाए, तो आमतौर पर ग़लत डिलिमिटर ही इसकी वजह है।
- कैरेक्टर एन्कोडिंग। CSV कोई एन्कोडिंग घोषणा नहीं रखता, इसलिए ग़ैर-ASCII टेक्स्ट (₹, उच्चारण चिह्न, भारतीय लिपियों में नाम) तभी बचता है जब फ़ाइल UTF-8 के रूप में सहेजी जाए। आगे लगा एक बाइट-ऑर्डर मार्क (BOM) कभी-कभी पहली सेल की शुरुआत में भटके हुए वर्णों के रूप में दिखता है। Excel से "CSV UTF-8" के रूप में सहेजने से इसमें से अधिकांश टल जाता है।
जिस डेटा में कॉमा, कोट्स, लाइन ब्रेक या ग़ैर-अंग्रेज़ी टेक्स्ट हो, उसके लिए XLSX या ODS फ़ाइल CSV से कहीं अधिक मज़बूत है, क्योंकि संरचना स्पष्ट होती है, विराम-चिह्नों से अनुमानित नहीं।
स्प्रेडशीट से API या डेटाबेस तक: एक वर्कफ़्लो
JSON में बदलना आमतौर पर किसी बड़े काम का एक चरण होता है। एक भरोसेमंद पैटर्न ऐसा दिखता है:
- पहले शीट साफ़ करें। सबसे ऊपर एक ही, सुथरी हेडर पंक्ति रखें; मर्ज की गई सेल्स, खाली स्पेसर पंक्तियाँ और सजावटी कॉलम हटाएँ; और ID-शैली के कॉलमों को text के रूप में फ़ॉर्मैट करें ताकि वे परिशुद्धता या आगे लगे शून्य न खोएँ।
- आउटपुट आकार चुनें। नामित फ़ील्ड लेने वाली लगभग हर चीज़ के लिए — API, डेटाबेस, टेम्पलेट — "पहली पंक्ति को हेडर मानें" चालू रखकर array of objects इस्तेमाल करें। जब आपको ठीक-ठीक ग्रिड बनाए रखना हो तो array of arrays इस्तेमाल करें।
- इंडेंटेशन चुनें। प्रिटी-प्रिंटेड (2 या 4 स्पेस) पढ़ने और साफ़ वर्शन-कंट्रोल डिफ़ के लिए सबसे अच्छा है; कोड में JSON एम्बेड करने या इसे संक्षिप्त पेलोड के रूप में भेजने के लिए मिनिफ़ाइड सबसे अच्छा है।
- भेजने से पहले सत्यापित करें। परिणाम को किसी JSON फ़ॉर्मैटर और वैलिडेटर में चिपकाएँ ताकि पुष्टि हो कि वह पार्स होता है, या JSON से TypeScript में चिपकाकर उस डेटा के लिए टाइप परिभाषाएँ बनाएँ जिसे आप आयात करने वाले हैं।
क्योंकि यहाँ हर चरण आपके ब्राउज़र में चलता है, आप यह सब गोपनीय डेटा के साथ कर सकते हैं — वेतन शीट, ग्राहक सूचियाँ, परीक्षा रिकॉर्ड — बिना इसे कभी आपकी मशीन से बाहर जाने दिए।
अक्सर पूछे जाने वाले सवाल
- क्या मेरी Excel फ़ाइल कहीं अपलोड होती है?
- नहीं। यह कन्वर्टर पूरी तरह आपके ब्राउज़र में SheetJS लाइब्रेरी का उपयोग करके चलता है। आपकी फ़ाइल सीधे आपकी लोकल डिस्क से मेमोरी में पढ़ी जाती है और किसी भी सर्वर पर कभी नहीं भेजी जाती। टैब बंद करते ही यह चली जाती है — कुछ भी स्टोर नहीं होता।
- कौन-कौन से फ़ाइल फ़ॉर्मैट समर्थित हैं?
- यह कन्वर्टर .xlsx (Excel 2007+), .xls (Excel 97–2003), .ods (LibreOffice / Google Sheets एक्सपोर्ट) और .csv फ़ाइलें स्वीकार करता है। CSV फ़ाइलों के लिए शीट सिलेक्टर छिपा रहता है क्योंकि उनमें केवल एक ही शीट होती है। मैक्रो-सक्षम वर्कबुक (.xlsm) स्वीकार तो होती हैं पर मैक्रो चलाए नहीं जाते — केवल डेटा पढ़ा जाता है।
- "Array of objects" और "Array of arrays" में क्या अंतर है?
- Array of objects (डिफ़ॉल्ट, जब "पहली पंक्ति को हेडर मानें" चालू हो) ऐसा JSON बनाता है: [{"Name":"Alice","Score":95},{"Name":"Bob","Score":87}] — हर पंक्ति हेडर पंक्ति से की-वाली एक ऑब्जेक्ट बन जाती है। Array of arrays ऐसा बनाता है: [["Name","Score"],["Alice",95],["Bob",87]] — हेडर सहित हर पंक्ति एक सादा array होती है। जब आपको नामित फ़ील्ड चाहिए (जैसे किसी REST API या डेटाबेस को फ़ीड करना) तो array-of-objects इस्तेमाल करें। जब आप कच्ची ग्रिड संरचना बनाए रखना चाहें तो array-of-arrays इस्तेमाल करें।
- खाली सेल्स का क्या होता है?
- array-of-objects मोड में, जो सेल्स पूरी तरह खाली हैं वे ऑब्जेक्ट से छोड़ दी जाती हैं (की null होने के बजाय दिखेगी ही नहीं)। array-of-arrays मोड में, खाली सेल्स null बन जाती हैं। यदि आपके डाउनस्ट्रीम कोड को ज़रूरत हो तो आप JSON को पोस्ट-प्रोसेस करके गायब की-ज़ को null या किसी डिफ़ॉल्ट मान से बदल सकते हैं।
- मैं कितनी बड़ी फ़ाइल बदल सकता हूँ?
- कोई सख़्त सर्वर-साइड सीमा नहीं है क्योंकि सब कुछ आपके ब्राउज़र में होता है। व्यवहार में, अधिकांश आधुनिक ब्राउज़र 10–50 MB तक की Excel फ़ाइलें आराम से संभाल लेते हैं। बहुत बड़ी फ़ाइलें (लाखों पंक्तियाँ) कुछ सेकंड ले सकती हैं और काफ़ी मेमोरी इस्तेमाल कर सकती हैं। यदि आपका ब्राउज़र टैब क्रैश हो जाए, तो पहले फ़ाइल को छोटे हिस्सों में बाँटने का प्रयास करें।
- क्या मैं कई शीट वाली वर्कबुक से कोई एक विशिष्ट शीट बदल सकता हूँ?
- हाँ। जब आप एक से अधिक शीट वाली वर्कबुक लोड करते हैं, तो एक शीट सिलेक्टर ड्रॉपडाउन दिखता है। नाम से कोई भी शीट चुनें और JSON आउटपुट तुरंत अपडेट हो जाता है। डाउनलोड बटन हमेशा वर्तमान में चुनी गई शीट को डाउनलोड करता है।