XLSX को SQL में बदलें

यहाँ आप XLSX को SQL में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • नए सिरे से बना SQL के काम करने का तरीक़ा XLSX से अलग है। यह किसी लॉसी कोडेक जैसा धीरे-धीरे होने वाला नुक़सान नहीं है: SQL जो कुछ व्यक्त कर सकता है, वह हूबहू उतर आता है — और जिसका वहाँ कोई समतुल्य नहीं, वह पूरी तरह रह जाता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।
  • जानने लायक़ सिर्फ़ पहली शीट पढ़ी जाती है, और उसमें भी सिर्फ़ मान। सूत्र, फ़ॉर्मैटिंग, कॉलम की चौड़ाई और पहली के बाद की हर शीट पीछे रह जाती है।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

जो मिलता है वह पंक्तियाँ हैं, कोई ढाँचा नहीं

आउटपुट है INSERT स्टेटमेंट की फ़ाइल, शीट की हर पंक्ति के लिए एक, हर एक टेबल का नाम लेती और हेडर से कॉलम गिनाती है। ऊपर कोई CREATE TABLE नहीं — यह जान-बूझकर है। स्प्रेडशीट में न टाइप है, न लंबाई, न कुंजी।

पंक्ति में एक ग़लत अंदाज़ा एक बिगड़ा रिकॉर्ड है। ढाँचे में एक ग़लत अंदाज़ा दो साल तक पते काटता रहने वाला VARCHAR है। यहाँ माना जाता है कि आपने पहले ही टेबल डिज़ाइन कर ली है।

फ़ाइल का नाम टेबल का नाम तय करता है

वर्कबुक का नाम, एक्सटेंशन हटाकर, हर स्टेटमेंट में टेबल बनता है। इसे साफ़ किया जाता है: हरफ़, अंक और underscore के अलावा कुछ भी underscore बन जाता है, और अंक से शुरू होने वाले नाम के आगे एक जुड़ जाता है।

व्यावहारिक सलाह सीधी है — बदलने से पहले फ़ाइल का नाम ठीक उसी टेबल के बराबर रख दीजिए जिसमें डेटा जाना है। हेडर पंक्ति के नाम भी उसी तरह साफ़ होते हैं, इसलिए "Order total (£)" जैसा हेडर आपके कॉलम-नाम से नहीं मिलेगा।

हर मान कैसे लिखा जाता है

संख्याएँ सादी लिखी जाती हैं। टेक्स्ट एकल-उद्धरण में लपेटा जाता है और अंदर का apostrophe दोगुना कर दिया जाता है — यह ANSI रूप है जो हर बड़ा इंजन समझता है। Backslash escape जान-बूझकर इस्तेमाल नहीं होता, क्योंकि वह MySQL का विस्तार है।

ख़ाली खाना NULL कीवर्ड बनता है, ख़ाली स्ट्रिंग नहीं — जो स्प्रेडशीट में किसी ख़ाली जगह का लगभग हमेशा सही पढ़ना है, और यह जानना ज़रूरी है अगर आपका कॉलम NOT NULL है।

TRUE और FALSE हर जगह मंज़ूर नहीं

बूलियन खाना अक्षरशः TRUE या FALSE बनकर लिखा जाता है। Postgres इसे सीधे लेता है, MySQL इन्हें 1 और 0 का उपनाम मानता है, SQLite बरसों से स्वीकार करता है। SQL Server नहीं — उसका bit टाइप 1 और 0 चाहता है।

यह जानने के बाद दो सेकंड का फ़िक्स है — चलाने से पहले TRUE/FALSE बदल दीजिए। न जानने पर चार सौवें स्टेटमेंट पर आई त्रुटि से पता चलना बीस मिनट का झंझट है।

तारीख़ कॉलम यहाँ सबसे ज़्यादा ग़लत होते हैं

स्प्रेडशीट तारीख़ को दिन-गिनती के रूप में रखती है, दिखावट के साथ, और बदलाव वह अंक ही लिखता है। 1 जनवरी 2024, दिसंबर 1899 के अंत से गिनकर 45292 बन जाता है।

संख्या-कॉलम में यह चुपचाप ग़लत बैठ जाता है; तारीख़-कॉलम में नकार दिया जाता है, जो कम-से-कम ज़ोर से होता है। इलाज है वर्कबुक में कॉलम को स्पष्ट टेक्स्ट में बदलना, या डेटाबेस में एक staging कॉलम रखकर वहीं गणित करना।

पहचान-कोड अपने शुरुआती शून्य रखते हैं

शीट में टेक्स्ट के रूप में रखा गया कोड उद्धृत स्ट्रिंग बनकर लिखा जाता है, इसलिए 007, '007' बनकर आता है और ज़ीरो-पैडेड खाता-संदर्भ VARCHAR कॉलम में सही पहुँचता है। यह ठीक उलटा है उस हाल का जो CSV और लापरवाह स्प्रेडशीट राउंड-ट्रिप में होता है।

जाँच यह है कि किसी कॉलम के दो मान जोड़ने का कोई मतलब बनता है क्या। पिनकोड, फ़ोन नंबर, संदर्भ-कोड — सब इस जाँच में नाकाम होते हैं और टेक्स्ट कॉलम में ही रहने चाहिए।

कॉलम-सूची, और वे पंक्तियाँ जो सब एक जैसी नहीं

हर स्टेटमेंट अपने कॉलम खुलकर नाम लेता है, टेबल के मौजूदा कॉलम-क्रम पर भरोसा नहीं करता। कॉलम-सेट पूरी शीट में मिले खानों का जोड़ है, इसलिए कोई खाना जो सिर्फ़ बाद की पंक्तियों में दिखता है, वह भी सूची में है — पहले वाली पंक्तियों में NULL के साथ।

यह विस्तार एक क़ीमत लेता है — कॉलम-सूची हर लाइन पर दोहराई जाती है, इसलिए फ़ाइल डेटा से बड़ी है। पचास हज़ार छह-कॉलम पंक्तियाँ लगभग 5.7 मेगाबाइट SQL बनती हैं, जबकि उनकी .xlsx लगभग 4.3 मेगाबाइट थी।

पचास हज़ार अलग स्टेटमेंट, और इसके साथ क्या करें

स्टेटमेंट बिना transaction के, हर पंक्ति पर एक, लिखे जाते हैं। Postgres या MySQL पर जैसा है वैसा चलाने पर वह पचास हज़ार अलग राउंड-ट्रिप और उतने ही implicit commit हैं।

फ़ाइल को BEGIN और COMMIT में लपेटना दोनों समस्या दो लाइनों में सुलझा देता है। सचमुच बड़े लोड के लिए बेहतर औज़ार bulk रास्ता है — Postgres में COPY, MySQL में LOAD DATA — जो एक दर्जा तेज़ है।

एक शीट, ब्राउज़र में, कहीं कुछ नहीं भेजा जाता

वर्कबुक की पहली शीट ही बदली जाती है, क्योंकि INSERT स्टेटमेंट का सिलसिला एक ही टेबल की बात करता है। अगर चाहिए वाली शीट पहली नहीं, तो उसे हटाकर आगे लाइए और फिर बदलिए।

सब कुछ यहीं होता है — वर्कबुक पार्स होती है और स्टेटमेंट पेज में लिखे जाते हैं, कोई अपलोड नहीं। यह ज़्यादा मायने रखता है क्योंकि डेटाबेस की तरफ़ जा रही स्प्रेडशीट अक्सर ग्राहक-रिकॉर्ड या लेन-देन होते हैं।

XLSX को SQL में ऐसे बदलें

  1. अपनी XLSX फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में SQL चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार SQL फ़ाइल डाउनलोड कर लें।

XLSX या SQL: क्या बदलता है

XLSX और SQL की तुलना
XLSXSQL
पूरा नामExcel वर्कबुकSQL INSERT कमांड
फ़ाइल एक्सटेंशन.xlsx.sql
मीडिया टाइपapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/sql
पहली बार प्रकाशित20071986
प्रकाशकMicrosoft
विनिर्देशECMA-376ISO/IEC 9075
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींकोई ब्राउज़र नहीं
इसकी जगह विचारणीयCSV, ODS, ParquetCSV, Parquet

नतीजा खोलना

दोनों तरफ़ के प्रोग्राम अलग हैं: XLSX फ़ाइल Microsoft Excel, LibreOffice Calc और Google Sheets में खुलती है और SQL फ़ाइल PostgreSQL, MySQL और DBeaver में — यानी नतीजा जिसके पास जाएगा, उसे दूसरी सूची में से कोई प्रोग्राम चाहिए होगा।

कौन-सा फ़ॉर्मेट किस काम के लिए है

दोनों का निशाना अलग काम है: XLSX का एडिटिंग पर, SQL का प्रोग्रामों के बीच डेटा ले जाना और सहेजना पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।

XLSX Microsoft का फ़ॉर्मेट है, जो 2007 में आया। यह ECMA-376 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

SQL 1986 से चला आ रहा है, और ISO/IEC 9075 में तय किया गया है। PostgreSQL, MySQL और DBeaver इस फ़ॉर्मेट को पढ़ लेते है।

SQL 1986 में आया और XLSX 2007 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।

XLSX से SQL: आम सवाल

क्या मेरी XLSX फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो। इस जोड़ी के पीछे SheetJS है, JavaScript में लिखा स्प्रेडशीट का एक पाठक और लेखक; आपका ब्राउज़र इसे एक बार उतारता है और फिर सहेज कर रखता है।

क्या XLSX को SQL में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100। SheetJS आपकी अपनी मशीन पर उतरता है और वहीं चलता है — इसीलिए उस पर कोई गिनती नहीं है।

XLSX को SQL में बदलने पर क्या गुणवत्ता जाती है?

XLSX और SQL सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ पहली शीट पढ़ी जाती है, और उसमें भी सिर्फ़ मान। सूत्र, फ़ॉर्मैटिंग, कॉलम की चौड़ाई और पहली के बाद की हर शीट पीछे रह जाती है।

SQL फ़ाइल खोलने के लिए क्या मुझे कुछ इंस्टॉल करना होगा?

कन्वर्ज़न के लिए नहीं: वह उसी ब्राउज़र में होता है जो आपने पहले से खोल रखा है। नतीजा खोलने के लिए उसके बाद वही प्रोग्राम चाहिए जिससे आपका डिवाइस SQL Insert Statements आम तौर पर दिखाता है।

इन फ़ॉर्मेट के बारे में और