2012-07-09 62 views
0

我正在嘗試使用PHPExcel庫。我已經閱讀了一些API,但仍然沒有確定如何正確使用它。PHPExcel使用示例

我想將一個數組,轉換爲Excel表。

如果我有:

$Array = array(
       array('key1' => 'Content1', 'key2' => 'Content2'), 
       array('key1' => 'Content3', 'key2' => 'Content4') 
); 

所以在Excel文件輸出將是:

key1    key2 

Content1   Content2 
Content3   Content4 

key1key2作爲標題。

你能幫忙嗎?謝謝

+0

看看帖子:http://stackoverflow.com/questions/5545406/php-excel-data-looping 希望這會有所幫助! – lexeme 2012-07-10 10:13:56

+1

你可以在不同的子數組中使用不同的鍵值嗎?如果子陣列總是相同的,那麼邏輯非常簡單,否則答案會更復雜。 – 2012-07-14 09:25:22

回答

0

有些討論在這裏。檢查 Example

0

這裏是我的代碼是什麼我做到了......但這裏的情況是有點不同,這裏的輸入是excel文件,而輸出爲陣列中的「關鍵」陣列=> '價值'對(在你的情況下,反之亦然),這不是一個解決方案,但它可能會幫助你走。

<?php 

    include './PHPExcel/IOFactory.php'; 
    $objPHPExcel = PHPExcel_IOFactory::load('campaign.xlsx'); 

    foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 

    $highestColumn = $worksheet->getHighestDataColumn(); 

    //Getting highest column with data 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 

    //Getting highest row with data 
    $highestRow = $worksheet->getHighestRow(); 

    $header = []; 
    //For saving all heading from Excel file. 
    for($i = 0 ; $i <= $highestColumnIndex ; $i++) 
    { 
     $cell = $worksheet->getCellByColumnAndRow($i,1); 
     $val = $cell->getValue(); 

     $header[] = $val; 

    } 

    $completeArray = []; 
    $value = []; 

    //For saving header and value pairs in a array 
    for ($row = 2; $row <= $highestRow; ++ $row) { 

     for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
      $cell = $worksheet->getCellByColumnAndRow($col, $row); 
      $val = $cell->getValue(); 

      $value[$header[$col]] = $val; 
     } 

     //Inserting that array... 
     $completeArray[] = $value; 

    } 

} 

echo '<pre>'; 
print_r($completeArray); 
echo '</pre>'; 

所以,你的情況,而不是使用所有get方法,如getCellByColumnAndRow在我的例子中,你可以使用

setCellValueByColumnAndRow($column, $row, $value); 

可以使這種資源的幫助,也 教程here

CheatSheet here