1. 程式人生 > >PHP Excel 讀取xls,xlsx檔案並出入資料然後儲存

PHP Excel 讀取xls,xlsx檔案並出入資料然後儲存

客戶有個需求就是在給定的excle檔案中插入相關資料,一定要注意excle裡的一些格式會匯出phpexcle讀取後無法儲存,折騰了許久,把excel檔案比較特殊的格式去掉就能正常讀取,插入資料,儲存了,下面給大家示例我的程式碼

require_once 'PHPExcel.php'; 
$objPHPExcel = new PHPExcel(); 
//開啟xlsx格式的檔案要使用   	
$excelType = PHPExcel_IOFactory::identify('attache/infotemp.xlsx');
$objReader=PHPExcel_IOFactory::createReader('Excel2007');    	
$objPHPExcel = $objReader->load('attache/infotemp.xlsx');
//這裡具體需要什麼資料自行根據需求了
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i,"你想要的資料");
$objPHPExcel->getActiveSheet()->setTitle('Manifest');
$objPHPExcel->setActiveSheetIndex(0);
$filename=urlencode('Manifest').'_'.date('Y-m-dHis');
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$objWriter->save('php://output');exit;
//下面是開啟xls檔案和儲存
$excelType = PHPExcel_IOFactory::identify('attache/infotemp.xls');
$objReader=PHPExcel_IOFactory::createReader('Excel5');    	
$objPHPExcel = $objReader->load('attache/infotemp.xls');
//這裡具體需要什麼資料自行根據需求了
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$i,"你想要的資料");
$objPHPExcel->getActiveSheet()->setTitle('Manifest');
$objPHPExcel->setActiveSheetIndex(0);
$filename=urlencode('Manifest').'_'.date('Y-m-dHis');
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');
$objWriter->save('php://output');exit;