2012-07-10 13 views
13

PHPExcelを使用して既存の.xlsファイルに新しい行を追加するにはどうすればよいですか?PHPExcelで新しい行を追加しますか?

すでに存在する行の数を計算する必要がありますか?

もしそうなら、どのようにExcelファイルでそれを行うことができますか?あなたがそうのような行数を取得することができます

$objPHPExcel = PHPExcel_IOFactory::load("foo.xlsx"); 
$objWorksheet = $objPHPExcel->getActiveSheet(); 

答えて

28

このセットアップと仮定すると、

$num_rows = $objPHPExcel->getActiveSheet()->getHighestRow();

がこれに続いては、次の文を使用して行を挿入するに見ることができます。

$objWorksheet->insertNewRowBefore($num_rows + 1, 1);

$num_rowsの前に1行追加します。

+0

$ objReaderはどのように定義されていますか? – Novak

+0

私はあなたのコード部分に従って、私は正しい結果を得られませんでした。あなたは見てみることができます:http://stackoverflow.com/questions/32312743/phpexcel-how-to-use-insertnewrowbefore-function-correctly –

5

上記の例では、空白行が追加されます。以下の例は、フォームからのデータを追加します。

<?php 

     require_once '../inc/phpexcel/Classes/PHPExcel.php'; 
     require_once '../inc/phpexcel/Classes/PHPExcel/IOFactory.php'; 
     $objPHPExcel = PHPExcel_IOFactory::load("myExcelFile.xlsx"); 
     $objWorksheet = $objPHPExcel->getActiveSheet(); 

     //add the new row 
     $num_rows = $objPHPExcel->getActiveSheet()->getHighestRow(); 
     $objWorksheet->insertNewRowBefore($num_rows + 1, 1); 
     $name = isset($_POST['name']) ? $_POST['name'] : ''; 
     if($submit){ 
    //SAVING THE NEW ROW - on the last position in the table 
     $objWorksheet->setCellValueByColumnAndRow(0,$num_rows+1,$name); 
     } 

     //display the table 
     echo '<table>'."\n"; 
     echo '<thead> 
     <tr> 
      <th>Company Name</th> 
     </tr> 
     </thead>'."\n"; 
     echo '<tbody>'."\n"; 
     foreach ($objWorksheet->getRowIterator() as $row) { 
     echo '<tr>'."\n"; 
     $cellIterator = $row->getCellIterator(); 
     $cellIterator->setIterateOnlyExistingCells(false); 
     foreach ($cellIterator as $cell) { 
     echo '<td>'.$cell->getValue().'</td>'."\n"; 
     } 
     echo '</tr>'."\n"; 
     } 
     echo '</tbody>'."\n"; 
     echo '</table>'."\n"; 
     ?> 
+0

私はあなたのコードに従って、正しい結果を得られませんでした。どうぞご覧ください。 http://stackoverflow.com/questions/32312743/phpexcel-how-to-use-insertnewrowbefore-function-correctly –