如何使用PHPExcel向现有.xls文件添加新行?
我必须计算已经存在的行数吗?
如果是这样的话,我该如何为excel文件做到这一点?
假设此设置:
$objPHPExcel = PHPExcel_IOFactory::load("foo.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
你可以得到这样的行数:
$num_rows = $objPHPExcel->getActiveSheet()->getHighestRow();
接下来,您可以使用以下语句插入一行:
$objWorksheet->insertNewRowBefore($num_rows + 1, 1);
这将在$num_rows
之前添加1个新行。
上面的例子只添加了一个空行。下面的示例添加来自表单的数据。
<?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";
?>