2011-04-04 13 views
17

मेरे पास डेटा के सरणी की एक सरणी है।PHP एक्सेल - डेटा लूपिंग?

तो बुनियादी प्रारूप

$sheet = array(
    array(
    'a1 data', 
    'b1 data', 
    'c1 data', 
    'd1 data', 
), 
    array(
    'a2 data', 
    'b2 data', 
    'c2 data', 
    'd2 data', 
), 
    array(
    'a3 data', 
    'b3 data', 
    'c3 data', 
    'd3 data', 
) 
); 

जब मैं सरणी मुझे पता नहीं है कि कितने स्तंभों या पंक्तियों वहाँ होगा पारित कर रहा हूँ। मैं क्या करना चाहता हूं php एक्सेल का उपयोग करके सरणी से एक्सेल शीट बनाएं।

मैं क्या देखा है से

, डेटा सेट करने का एकमात्र तरीका है का उपयोग करने के $objPHPExcel->getActiveSheet()->setCellValue('A1', $value);

तो मेरे सवाल का

है आप कैसे कोशिकाओं से अधिक पाश होता?

याद रखना कि 30 कॉलम कह सकते हैं और 70 पंक्तियां कहें जो AD70 होगी, तो आप इसे कैसे लूप करते हैं?

या क्या एक सरणी को एक शीट में बदलने के लिए फ़ंक्शन में बनाया गया है?

उत्तर

27

तुम इतनी तरह एक सरणी से डेटा सेट कर सकते हैं:

$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1'); 

fromArray 2 डी सरणियों के साथ काम करता है। जहां पहला तर्क 2 डी सरणी है, दूसरा तर्क यह है कि यदि कोई शून्य मान है तो इसका उपयोग करना है, और आखिरी तर्क यह है कि शीर्ष बाएं कोने होना चाहिए।

नहीं तो आप डेटा के माध्यम से लूप करने की आवश्यकता होगी:

$worksheet = $objPHPExcel->getActiveSheet(); 
foreach($sheet as $row => $columns) { 
    foreach($columns as $column => $data) { 
     $worksheet->setCellValueByColumnAndRow($column, $row + 1, $data); 
    } 
} 
+0

@ मार्क बेकर तय, और धन्यवाद। मुझे वास्तव में आपका काम पसंद है। – Jacob

+0

जहां हमें उपरोक्त फ़ोरैच लूप में ** $ पंक्तियां ** और ** $ कॉलम ** मिलते हैं? – Aziz

+0

आपको शायद एक नोट बनाना चाहिए कि 2 डी सरणी काम करते हैं लेकिन केवल नियमित सरणी के मामले में। –

0

जहां तक ​​मुझे पता है, आपको PHP एक्सेल का उपयोग करके वर्कशीट पॉप्युलेट करते समय अंतिम एक्सेल वर्कशीट की ऊंचाई और चौड़ाई को जानने की आवश्यकता नहीं है। आप सभी नेस्टेड एरे पढ़ने के लिए केवल नेस्टेड फ़ोरैच लूप का उपयोग कर सकते हैं और सेल संदर्भों को बनाने और वर्कशीट में जोड़ने के लिए उचित चर का उपयोग कर सकते हैं। प्लगइन आकार को संभालेगा।

+1

हाँ, मेरे सवाल है, तो आप कैसे करना है पाश है? – Hailwood

22
$rowID = 1; 
foreach($sheet as $rowArray) { 
    $columnID = 'A'; 
    foreach($rowArray as $columnValue) { 
     $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue); 
     $columnID++; 
    } 
    $rowID++; 
} 

या

$objPHPExcel->getActiveSheet()->fromArray($sheet); 
+3

वास्तव में PHPExcel डेवलपर से प्रतिस्पर्धा नहीं कर सकता: डी – Jacob

+0

पीएस मुझे लगता है कि PHP में वर्ण बढ़ने के तरीके एक्सेल कोशिकाओं के साथ काम करना बहुत आसान बनाता है: डी – Jacob

+3

@ जैकोब - PHPExcel के साथ काम करते समय चरित्र वृद्धि निश्चित रूप से उपयोगी होती है ... मैं नियमित रूप से उस चाल का उपयोग करता हूं। –

संबंधित मुद्दे