Добавить новую строку в файл excel с использованием библиотеки phpExcel

Я новичок в php и phpExcel . Я просто хочу сохранять данные сообщений в существующий лист excel каждый раз в новую строку.

Когда я искал на Stackoverflow.com, я получил ссылку на библиотеку phpExcel .

Я записываю следующий код из нескольких образцов.

 <?php /** Include PHPExcel */ require_once 'Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row, $_POST['name']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$row, $_POST['email']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$row, $_POST['phone']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$row, $_POST['city']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$row, $_POST['kid1']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$row, $_POST['kid2']); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save('myfile.xlsx'); ?> 

но проблема, с которой я сталкиваюсь, у меня нет идеи о том, как добавить новую строку в Excel, чтобы каждый раз отправлял данные, сохраненные в новую строку.

Я знаю, что мой этот код только сохраняет файл на диск каждый раз с одной строкой, но мне нужно добавить новую строку в последний лист excel.

 <?php /** Include PHPExcel */ require_once 'Classes/PHPExcel.php'; require_once 'Classes/PHPExcel/IOFactory.php'; $objPHPExcel = PHPExcel_IOFactory::load("myfile.xlsx"); $objPHPExcel->setActiveSheetIndex(0); $row = $objPHPExcel->getActiveSheet()->getHighestRow()+1; //echo $row; $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row, $_POST['name']); $objPHPExcel->getActiveSheet()->SetCellValue('B'.$row, $_POST['email']); $objPHPExcel->getActiveSheet()->SetCellValue('C'.$row, $_POST['phone']); $objPHPExcel->getActiveSheet()->SetCellValue('D'.$row, $_POST['city']); $objPHPExcel->getActiveSheet()->SetCellValue('E'.$row, $_POST['kid1']); $objPHPExcel->getActiveSheet()->SetCellValue('F'.$row, $_POST['kid2']); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save('myfile.xlsx'); ?> 

У меня была та же проблема, и я нашел решение из метода fromArray на листе и третий параметр, startCell

посмотрите на PHP-Doc:

 Worksheet::fromArray Fill worksheet from values in array Parameters: array $source Source array, default null mixed $nullValue Value in source array that stands for blank cell, default null string $startCell Insert array starting from this cell address as the top left coordinate, default 'A1' boolean $strictNullComparison Apply strict comparison when testing for null, default false 

так, просто:

 <?php /** Include PHPExcel */ require_once 'Classes/PHPExcel.php'; require_once 'Classes/PHPExcel/IOFactory.php'; $objPHPExcel = PHPExcel_IOFactory::load("myfile.xlsx"); $objPHPExcel->setActiveSheetIndex(0); $row = $objPHPExcel->getActiveSheet()->getHighestRow()+1; //echo $row; $rowData = array( array( $_POST['name'], $_POST['email'], $_POST['phone'], $_POST['city'], $_POST['kid1'], $_POST['kid2'] ) ); //fromArray allow you multi-row append $objPHPExcel->getActiveSheet()->fromArray($rowData, null, 'A'.$row); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save('myfile.xlsx'); ?> 
  <?php require_once 'PHPExcel.php'; require_once 'PHPExcel/IOFactory.php'; //Update the multiple sheets in PHP excel $report_file = 'Report_' . date('Ym-d') . '.xlsx'; $report_file_exists = 0; //If the file doesnot exist , create new otherwise append the data at last if (!file_exists($report_file)) { $objPHPExcel = new PHPExcel(); } else { $report_file_exists = 1; $objPHPExcel = PHPExcel_IOFactory::load($report_file); } $columns = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); //Sheet details $sheet_details = array( //1st sheet details 0 => array('sheet_title' => 'Products', 'sheet_heading' => array('Article_Number','Name'), 'sheet_data' => array('1234','Pen') ), //2nd Sheet Details 1 => array('sheet_title' => 'Categories', 'sheet_heading' => array('Category Id','Name'), 'sheet_data' => array(123,'Accessories') ) ); $sheet_count = 0; $row = 1; $column = 0; while ($sheet_count <= count($sheet_details)) { $objWorkSheet = ''; if ($report_file_exists == 0) { if ($sheet_count > 0) { $objWorkSheet = $objPHPExcel->createSheet($sheet_count); } else { $objWorkSheet = $objPHPExcel->getActiveSheet(); } $row = 1; $column = 0; foreach ($sheet_details[$sheet_count]['sheet_heading'] as $head) { $objWorkSheet->setCellValue($columns[$column] . $row, $head); $column++; } } else { $objPHPExcel->setActiveSheetIndex($sheet_count); $objWorkSheet = $objPHPExcel->getActiveSheet($sheet_count); } $row = $objWorkSheet->getHighestRow() + 1; //row count foreach ($sheet_details[$sheet_count]['sheet_data'] as $report_details) { $column = 0; foreach ($report_details as $data) { $objWorkSheet->setCellValue($columns[$column] . $row, $data); $column++; } $row++; } $objWorkSheet->setTitle($sheet_details[$sheet_count]['sheet_title']); $sheet_count++; } $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save($report_file); ?>