PHP में Excel के साथ काम: PhpSpreadsheet और OpenSpout लाइब्रेरी की पूरी जानकारी
PHP वेब डेवलपमेंट में Excel स्प्रेडशीट के साथ काम करना सबसे आम कार्यों में से एक है। चाहे रिपोर्ट जनरेट करनी हो, अकाउंटिंग सिस्टम से डेटा इम्पोर्ट करना हो या क्लाइंट के लिए स्टैटिस्टिक्स एक्सपोर्ट करना हो - .xlsx और .xls फॉर्मेट के लिए टूल्स के बिना काम नहीं चलता। इस आर्टिकल में हम दो सबसे लोकप्रिय PHP लाइब्रेरी देखेंगे: PhpSpreadsheet (मशहूर PHPExcel का उत्तराधिकारी) और OpenSpout (बड़ी फाइलों के लिए हल्का विकल्प)।
PhpSpreadsheet - शक्तिशाली और फीचर-रिच टूल
PhpSpreadsheet PHPOffice प्रोजेक्ट की एक लाइब्रेरी है जो Excel फाइलों (XLSX, XLS, ODS, CSV और अन्य) को पढ़ने, बनाने और संशोधित करने की सुविधा देती है। यह सेल स्टाइलिंग, फॉर्मूले, चार्ट, कंडीशनल फॉर्मेटिंग और मैक्रोज़ को भी सपोर्ट करती है।
PhpSpreadsheet इंस्टॉल करना
Composer के ज़रिए इंस्टॉलेशन करें:
composer require phpoffice/phpspreadsheet
उदाहरण: एक साधारण Excel फाइल बनाना
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// डेटा भरें
$sheet->setCellValue('A1', 'आईडी');
$sheet->setCellValue('B1', 'नाम');
$sheet->setCellValue('C1', 'ईमेल');
$sheet->setCellValue('A2', 1);
$sheet->setCellValue('B2', 'राहुल शर्मा');
$sheet->setCellValue('C2', 'rahul@example.com');
// हेडर स्टाइल करें
$styleArray = [
'font' => ['bold' => true, 'size' => 14],
'fill' => ['fillType' => 'solid', 'startColor' => ['rgb' => 'E0E0E0']]
];
$sheet->getStyle('A1:C1')->applyFromArray($styleArray);
// फाइल सेव करें
$writer = new Xlsx($spreadsheet);
$writer->save('users.xlsx');
echo "users.xlsx फाइल बन गई!";
?>
मौजूदा Excel फाइल पढ़ना
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = 'users.xlsx';
$spreadsheet = IOFactory::load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
$rowData = [];
foreach ($cellIterator as $cell) {
$rowData[] = $cell->getValue();
}
echo implode(' | ', $rowData) . "<br>";
}
?>
OpenSpout - बड़े डेटा के लिए हल्का और तेज़
OpenSpout एक लाइब्रेरी है जो बड़ी मात्रा में डेटा (लाखों पंक्तियाँ) के साथ काम करने के लिए बनाई गई है। PhpSpreadsheet के विपरीत, यह पूरी फाइल को मेमोरी में लोड नहीं करती, बल्कि स्ट्रीमिंग के ज़रिए प्रोसेस करती है। यह इसे बड़ी रिपोर्ट एक्सपोर्ट/इम्पोर्ट के लिए आदर्श बनाता है। OpenSpout XLSX, CSV और ODS फॉर्मेट को सपोर्ट करता है।
OpenSpout इंस्टॉल करना
composer require openspout/openspout
उदाहरण: 100,000 पंक्तियाँ XLSX में एक्सपोर्ट करना
<?php
require 'vendor/autoload.php';
use OpenSpout\Writer\XLSX\Writer;
$writer = new Writer();
$writer->openToFile('big_export.xlsx');
// हेडर
$writer->addRow(['आईडी', 'नाम', 'ईमेल']);
for ($i = 1; $i <= 100000; $i++) {
$writer->addRow([$i, "उपयोगकर्ता $i", "user$i@example.com"]);
}
$writer->close();
echo "100,000 पंक्तियों वाली big_export.xlsx फाइल बन गई!";
?>
OpenSpout से बड़ी फाइल पढ़ना
<?php
require 'vendor/autoload.php';
use OpenSpout\Reader\XLSX\Reader;
$reader = new Reader();
$reader->open('big_export.xlsx');
foreach ($reader->getSheetIterator() as $sheet) {
foreach ($sheet->getRowIterator() as $row) {
$cells = $row->getCells();
echo implode(' | ', array_map(function($cell) {
return $cell->getValue();
}, $cells)) . "<br>";
}
}
$reader->close();
?>
PhpSpreadsheet और OpenSpout की तुलना
पुस्तकालय में भी
PHP में तिथियों के साथ काम करना: पुस्तकालयों और उपकरणों का अवलोकन
PHP में कैशिंग: Redis, Memcached, APCu और फ़ाइल कैशिंग
PHP पर SMS भेजना: एकीकरण के लिए API लाइब्रेरी
Go (Golang) में लॉगिंग: प्रोडक्शन के लिए सर्वश्रेष्ठ लाइब्रेरीज़ और समाधान