Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 44

Export to CSV/Excel

CSV export क्या है

CSV export users को data — orders, students, sales की list — spreadsheet file के रूप में download करने देता है। CSV plain text है जहाँ हर line एक row है और commas columns अलग करते हैं। चूँकि Excel और Google Sheets इसे सीधे खोलते हैं, यह users को data देने का standard तरीका है।

💡 दो हिस्से: download headers भेजिए ताकि browser file save करे, फिर rows को fputcsv से लिखिए।

Download headers

ये headers, किसी भी output से पहले भेजे, browser को response को file के रूप में download करने को कहते हैं।

<?php
  header("Content-Type: text/csv");
  header('Content-Disposition: attachment; filename="data.csv"');
?>

Content-Type कहता है यह CSV है; Content-Disposition: attachment दिए filename के साथ download मजबूर करता है। इनसे पहले कोई output (एक space भी नहीं) नहीं होना चाहिए।

fputcsv से rows लिखना

<?php
  header("Content-Type: text/csv");
  header('Content-Disposition: attachment; filename="data.csv"');

  $out = fopen("php://output", "w");
  fputcsv($out, ["Name", "Marks"]);   // header row
  fputcsv($out, ["Aman", 88]);
  fputcsv($out, ["Diya", 92]);
  fclose($out);
?>
Name,Marks
Aman,88
Diya,92

हम php://output (browser download stream) खोलते हैं और हर row को fputcsv से लिखते हैं, जो हमारे लिए commas और quotes सही format करता है।

MySQL से export

<?php
  header("Content-Type: text/csv");
  header('Content-Disposition: attachment; filename="students.csv"');

  $out = fopen("php://output", "w");
  fputcsv($out, ["Name", "Marks"]);   // column titles

  $stmt = $pdo->query("SELECT name, marks FROM students");
  while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      fputcsv($out, [$row["name"], $row["marks"]]);
  }
  fclose($out);
?>

column नामों की एक header row लिखिए, फिर database results में loop करके हर एक को CSV row के रूप में लिखिए। Browser खुलने-को-तैयार spreadsheet download करता है।

Excel में खोलना

Download की .csv Excel या Google Sheets में सीधे खुलती है — हर comma column सीमा बनता है, हर line एक row। non-English text के लिए, पहले UTF-8 BOM लिखिए ताकि accents और Hindi सही दिखें:

<?php
  echo "\xEF\xBB\xBF";  // Excel के लिए UTF-8 BOM
?>

आम गलतियाँ

  • Headers से पहले output। पहले कोई space या echo "headers already sent" देता है।
  • हाथ से commas से values जोड़ना। fputcsv इस्तेमाल कीजिए ताकि commas या quotes वाली values संभलें।
  • Header row भूलना। column titles बिना file पढ़ना मुश्किल।
  • Hindi/accents के लिए गलत encoding। UTF-8 BOM जोड़िए ताकि Excel उन्हें सही दिखाए।

सारांश

  • CSV plain-text spreadsheet format है जो Excel में खुलता है।
  • Download मजबूर करने को Content-Type और Content-Disposition headers भेजिए।
  • Rows को fputcsv से php://output पर लिखिए।
  • MySQL से export को results में loop करके हर row लिखिए।
  • Excel में सही Hindi/accented text को UTF-8 BOM जोड़िए।

आगे, पहले data पढ़िए PHP CRUD से, या सुरक्षित connect कीजिए PHP MySQL connection से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

CSV file क्या है?
CSV (Comma-Separated Values) एक plain-text spreadsheet format है जहाँ हर line एक row है और commas columns अलग करते हैं। यह Excel, Google Sheets और लगभग हर data tool में खुलता है, जो इसे data export करने का standard तरीका बनाता है।
Browser को CSV download कैसे करवाऊँ?
किसी भी output से पहले दो headers भेजिए: Content-Type: text/csv और Content-Disposition: attachment; filename="data.csv"। ये browser को response को दिखाने के बजाय file के रूप में download करने को कहते हैं।
fputcsv क्या करता है?
fputcsv एक array लेकर उसे एक सही format वाली CSV row के रूप में लिखता है, values के अंदर के commas और quotes अपने-आप संभालकर। यह खुद commas से values जोड़ने से ज़्यादा सुरक्षित है।
MySQL data को CSV में कैसे export करूँ?
rows query कीजिए, column नामों की एक header row लिखिए, फिर results में loop करके हर row को fputcsv से लिखिए। download headers पहले भेजिए ताकि browser इसे file के रूप में save करे।
Headers से पहले कोई output क्यों नहीं?
Headers किसी भी HTML या text से पहले भेजने होते हैं, वरना PHP "headers already sent" error देती है। पक्का कीजिए आपके header() calls से पहले कोई spaces या echoes न हों।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicGenerate PDF (FPDF) आपकी प्रगति: 44 / 50 (88%) · Lesson 45 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें