गाइड

Excel में न खुलने वाली बहुत बड़ी CSV फ़ाइल कैसे खोलें

Opener टीम7 मिनट में पढ़ें

Excel की एक वर्कशीट में ज़्यादा से ज़्यादा 1,048,576 पंक्तियाँ और 16,384 कॉलम आ सकते हैं, इसलिए 30 लाख पंक्तियों वाला एक्सपोर्ट उसमें समाता ही नहीं — Excel पहला हिस्सा लोड करता है, चेतावनी देता है और बाकी पीछे छोड़ देता है। पूरी फ़ाइल देखने के लिए उसे ऐसे टूल में खोलें जिसमें यह सीमा न हो, जैसे CSV व्यूअर, उसे शीट की जगह Excel के Data Model में लोड करें, उसे टुकड़ों में बाँटें, या Python या किसी डेटाबेस से एनालाइज़ करें।

Excel फ़ाइल को बीच में क्यों काट देता है

CSV फ़ाइल की अपनी कोई साइज़ सीमा नहीं होती। वह प्लेन टेक्स्ट है: हर पंक्ति के लिए एक लाइन, वैल्यू कॉमा या सेमीकोलन से अलग (अगर यह आपके लिए नया है, तो पढ़ें CSV फ़ाइल क्या है)। लेकिन Excel जो कुछ भी खोलता है, उसे एक वर्कशीट में रखता है, और वर्कशीट का ग्रिड तय होता है: 1,048,576 पंक्तियाँ × 16,384 कॉलम (कॉलम XFD तक)।

जब फ़ाइल इस ग्रिड से बड़ी होती है, तो Excel चेतावनी दिखाता है कि फ़ाइल पूरी लोड नहीं हुई, और सिर्फ़ उतनी पंक्तियाँ रखता है जितनी समा सकें। हेडर और 1,048,575 डेटा पंक्तियाँ अंदर आ जाती हैं; पंक्ति 1,048,577 से आगे का सब कुछ स्क्रीन से ग़ायब रहता है।

Google Sheets भी यहाँ कोई रास्ता नहीं है। उसमें हर स्प्रेडशीट के लिए 1 करोड़ सेल की सीमा है, जो सभी शीट मिलाकर गिनी जाती है। 30 लाख पंक्तियों और 10 कॉलम वाली फ़ाइल पहले ही 3 करोड़ सेल की है, इसलिए वह भी इम्पोर्ट नहीं होगी।

असली ख़तरा: सेव करने पर डेटा खो जाता है

चेतावनी को बंद करना आसान है, और स्क्रीन पर जो बचता है वह बिल्कुल सामान्य टेबल जैसा दिखता है। ख़तरा बाद में आता है:

अगर Excel चेतावनी दिखा चुका है, तो फ़ाइल को बिना सेव किए बंद करें और मूल एक्सपोर्ट को छुएँ नहीं। फिर आगे क्या करना है, यह तय करने से पहले जाँचें कि वह असल में कितनी बड़ी है।

विकल्प 1: पूरी फ़ाइल अपने ब्राउज़र में खोलें

अगर आपको मुख्य रूप से डेटा देखना है — कुछ रिकॉर्ड जाँचने हैं, कोई ग्राहक ढूँढना है, देखना है कि किसी कॉलम में क्या है — तो बिना ग्रिड सीमा वाला व्यूअर सबसे तेज़ रास्ता है।

Opener का CSV व्यूअर फ़ाइल को आपके ब्राउज़र में पढ़ता है और कभी अपलोड नहीं करता, जो तब मायने रखता है जब एक्सपोर्ट में ग्राहकों या पैसों से जुड़ा डेटा हो। पार्सिंग बैकग्राउंड थ्रेड में होती है और सिर्फ़ स्क्रीन पर दिखने वाली पंक्तियाँ बनती हैं, इसलिए 2 लाख पंक्तियों वाली फ़ाइल लगभग एक सेकंड में खुलती है और लाखों पंक्तियों वाली फ़ाइलें आम लैपटॉप पर चल जाती हैं। व्यावहारिक सीमा आपके डिवाइस की मेमोरी है, कोई तय पंक्ति संख्या नहीं।

खुलने के बाद आप:

आख़िरी बात एक काम की तरकीब है: 30 लाख पंक्तियों को फ़िल्टर करके उन 40,000 तक लाएँ जिनमें किसी एक रीजन का ज़िक्र है, उन्हें एक्सपोर्ट करें, और छोटी फ़ाइल Excel में बिना किसी चेतावनी के खुल जाएगी। व्यूअर फ़ॉर्मूले, पिवट या चार्ट नहीं चलाता; उनके लिए आगे पढ़ें।

विकल्प 2: इसे Excel के Data Model में लोड करें

Excel के नए डेस्कटॉप वर्शन CSV को सीधे खोलने के बजाय Power Query से इम्पोर्ट कर सकते हैं (Data टैब पर “Get Data” / “From Text/CSV” वाला रास्ता)। फ़र्क इस बात का है कि डेटा कहाँ पहुँचता है।

नतीजे को वर्कशीट में लोड करने के बजाय उसे सिर्फ़ कनेक्शन के रूप में लोड करना और Data Model में जोड़ना चुनें। Data Model डेटा को ग्रिड के बाहर कंप्रेस करके रखता है, इसलिए वह 1,048,576 पंक्तियों की सीमा से बँधा नहीं है। फिर आप उस पर PivotTable बनाकर सभी 30 लाख पंक्तियों का सारांश निकाल सकते हैं — हर महीने का टोटल, हर कैटेगरी की गिनती वगैरह।

इसकी क़ीमत: आप सामान्य शीट की तरह पंक्तियों में स्क्रॉल नहीं कर सकते, और मेन्यू के सटीक नाम Excel के वर्शन के हिसाब से बदलते हैं। जब आपको Excel में ही रहना है और अंतिम नतीजा पंक्ति-दर-पंक्ति व्यू नहीं, बल्कि सारांश है, तब यह सबसे अच्छा विकल्प है।

विकल्प 3: कमांड लाइन से गिनें, झलक देखें और बाँटें

macOS, Linux या WSL वाले Windows पर कुछ स्टैंडर्ड कमांड सेकंडों में बता देती हैं कि “फ़ाइल कितनी बड़ी है?” और “इसमें क्या है?”, फ़ाइल को किसी चीज़ में लोड किए बिना:

wc -l export.csv              # लाइनों की संख्या
head -n 20 export.csv         # पहली 20 लाइनें
head -n 100000 export.csv > sample.csv   # आज़माने के लिए छोटा सैंपल

ध्यान दें कि wc -l लाइनें गिनता है, पंक्तियाँ नहीं। अगर कुछ वैल्यू में कोटेशन मार्क के अंदर लाइन ब्रेक हैं (पते और कमेंट में अक्सर होते हैं), तो लाइनों की संख्या पंक्तियों से ज़्यादा होगी।

फ़ाइल को ऐसे टुकड़ों में बाँटने के लिए जिन्हें Excel खोल सके, हर टुकड़े में अपनी हेडर पंक्ति के साथ:

tail -n +2 export.csv | split -l 1000000 - part_
for f in part_*; do
  { head -n 1 export.csv; cat "$f"; } > "$f.csv" && rm "$f"
done

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

विकल्प 4: pandas, SQLite या DuckDB से एनालाइज़ करें

अगर आपको कैलकुलेट करना, जोड़ना (join) या समेकित (aggregate) करना है, तो ईमानदार जवाब है कोई असली डेटा टूल। ये सभी आम लैपटॉप पर करोड़ों पंक्तियाँ संभाल लेते हैं।

Python और pandas पूरी फ़ाइल को मेमोरी में पढ़ता है:

import pandas as pd

df = pd.read_csv("export.csv")
print(len(df))
print(df.groupby("region")["amount"].sum())

अगर फ़ाइल आपकी RAM से बड़ी है, तो उसे टुकड़ों (chunks) में पढ़ें:

total = 0
for chunk in pd.read_csv("export.csv", chunksize=500_000):
    total += chunk["amount"].sum()

DuckDB CSV फ़ाइल को पहले इम्पोर्ट किए बिना सीधे SQL से क्वेरी कर सकता है:

SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM 'export.csv'
GROUP BY region
ORDER BY revenue DESC;

SQLite कई सिस्टम पर पहले से इंस्टॉल होता है और तब अच्छा काम करता है जब आप डेटा को एक क्वेरी करने लायक फ़ाइल में रखना चाहते हैं:

sqlite3 sales.db
sqlite> .mode csv
sqlite> .import export.csv sales
sqlite> SELECT COUNT(*) FROM sales;

एक अच्छा तरीका यह है कि भारी काम यहाँ करें और फिर एक छोटा नतीजा — सारांश की कुछ हज़ार पंक्तियाँ — Excel या किसी रिपोर्ट के लिए वापस CSV में लिख दें।

अक्सर पूछे जाने वाले सवाल

क्या मैं Excel की पंक्ति सीमा बढ़ा सकता हूँ?

नहीं। 1,048,576 पंक्तियों की सीमा हर वर्कशीट के लिए तय है। आप सिर्फ़ इसके आस-पास से रास्ता निकाल सकते हैं: डेटा को Data Model में लोड करें, फ़ाइल को बाँटें, या कोई दूसरा टूल इस्तेमाल करें।

कैसे पता करूँ कि मेरी फ़ाइल कट गई थी?

फ़ाइल खोलते समय Excel चेतावनी देता है, और अगर शीट का डेटा ठीक पंक्ति 1,048,576 पर ख़त्म होता है, तो यह पक्का संकेत है। पूरी तरह पक्का करने के लिए मूल फ़ाइल का साइज़ wc -l से जाँचें या उसे CSV व्यूअर में खोलें, जो कुल पंक्तियों की संख्या दिखाता है।

क्या Google Sheets या LibreOffice इसे खोल देंगे?

आम तौर पर नहीं। Google Sheets की सीमा हर स्प्रेडशीट में 1 करोड़ सेल है, और LibreOffice Calc में भी हर शीट की पंक्तियों की एक तय अधिकतम सीमा है। छोटी फ़ाइलों के लिए दोनों ठीक हैं, लेकिन लाखों पंक्तियों वाले एक्सपोर्ट के लिए व्यूअर, डेटाबेस या स्क्रिप्ट चाहिए।

क्या ग्राहकों का बड़ा एक्सपोर्ट ब्राउज़र टूल में खोलना सुरक्षित है?

यह टूल पर निर्भर करता है। कई ऑनलाइन कन्वर्टर आपकी फ़ाइल सर्वर पर अपलोड करते हैं। Opener फ़ाइल को आपके ब्राउज़र में लोकल रूप से पढ़ता है और कहीं कुछ नहीं भेजता, इसलिए डेटा आपके डिवाइस पर ही रहता है।