使用phpexcel在excel文件中插入新的數據php
摘要:在開發中,咱們常常須要讀寫excel表格。今天開發了一下讀excel表格,而後使用 insertNewRowBefore 方法插入新行,生成新的表格。緩存
代碼以下,親測好用:app
/** * 在已有excel表中插入數據例子 */ public function readyExcel($filename){ vendor("PHPExcel.PHPExcel"); $inputFileName = $filename;//excel文件路徑 date_default_timezone_set('PRC'); // 讀取excel文件 try { $inputFileType = \PHPExcel_IOFactory::identify($inputFileName); $objReader = \PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch(\Exception $e) { die('加載文件發生錯誤:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } $array = [ ['A','B','C','D','E','F'], ['A1','B1','C1','D1','E1','F1'], ['A2','B2','C2','D2','E2','F2'] ]; $baseRow=17; //指定插入到第17行後 foreach($array as $index=>$dataRow){ $row= $baseRow +$index; //$row是循環操做行的行號 $objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1); //在操做行的號前加一空行,這空行的行號就變成了當前的行號 //對應的列都附上數據和編號 $objPHPExcel->getActiveSheet()->setCellValue( 'A'.$row,$dataRow[0]); $objPHPExcel->getActiveSheet()->setCellValue( 'B'.$row,$dataRow[1]); $objPHPExcel->getActiveSheet()->setCellValue( 'C'.$row,$dataRow[2]); $objPHPExcel->getActiveSheet()->setCellValue( 'D'.$row,$dataRow[3]); $objPHPExcel->getActiveSheet()->setCellValue( 'E'.$row, $dataRow[4]); $objPHPExcel->getActiveSheet()->setCellValue( 'F'.$row, $dataRow[5]); } ob_end_clean();//清除緩存區,解決亂碼問題 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="Bill.xls"'); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; }
複製連接加入羣聊【開發交流】:https://jq.qq.com/?_wv=1027&k=5rHG16Gide