使用phpExcel 複製sheet到新建的檔案中
阿新 • • 發佈:2018-12-27
/**
* Created by PhpStorm.
* User:廣州第一靚仔-Stone
* Date: 2018/11/26
* Time: 下午5:35
*/
try { $objReader = PHPExcel_IOFactory::createReaderForFile($file); }catch (Exception $e) { echo "捕獲到異常"; echo $e->getMessage(); } // 判斷使用哪種格式 獲取原檔案 if($type=='xls'){ $objReader = PHPExcel_IOFactory::createReader('Excel5'); }elseif($type=='xlsx'){ $objReader = PHPExcel_IOFactory::createReader('Excel2007'); }elseif($type=='csv'){ $objReader = PHPExcel_IOFactory::createReader('CSV'); } $objPHPExcel = $objReader->load($file); $newExcel = new PHPExcel(); // 新的excel表格
// 設定屬性 $newExcel->getProperties() ->setLastModifiedBy($objPHPExcel->getProperties()->getLastModifiedBy()) //設定最後修改者 ->setTitle($objPHPExcel->getProperties()->getTitle())//設定標題 ->setSubject($objPHPExcel->getProperties()->getSubject())//設定主題 ->setDescription($objPHPExcel->getProperties()->getDescription()) //設定備註 ->setKeywords($objPHPExcel->getProperties()->getKeywords())//設定標記 ->setCategory($objPHPExcel->getProperties()->getCategory()); //設定類別
//複製sheet
$k = 0;
foreach ($objPHPExcel->getSheetNames() as $sheetName){ //獲取檔案裡面每個sheet
$sheet = $objPHPExcel->getSheetByName($sheetName);
$sheet->setTitle('Sheet'.$k);
$newExcel->addExternalSheet($sheet);//複製到新的物件中
unset($sheet);
$k ++;
}
// 因為初始化PHPExcel之後會預設生成第一個叫Worksheet的表格,刪除掉
$newExcel->removeSheetByIndex(0);
// 判斷使用哪種格式建立寫入物件
$objWriter = '';
if($type=='xls'){
$objWriter = PHPExcel_IOFactory::createWriter($newExcel, 'Excel5');
}elseif($type=='xlsx'){
$objWriter = PHPExcel_IOFactory::createWriter($newExcel, 'Excel2007');
}elseif($type=='csv'){
$objWriter = PHPExcel_IOFactory::createWriter($newExcel, 'CSV');
}
//$objWriter = PHPExcel_IOFactory::createWriter($newExcel, 'Excel2007');
$objWriter->save($file);