$filetype =end(explode(".",$template_excel));
if($filetype=="xls"){
$inputFileType = 'Excel5';
}else if( $filetype=="xlsx"){
$inputFileType = 'Excel2007';
}
if (!file_exists ($template_excel)) { //模板文件不存在
$objPHPExcel = new PHPExcel();
$ii = 0;
//设置表头
foreach($list as $k => $v){
$colum = PHPExcel_Cell::stringFromColumnIndex($ii);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1', $v["showname"]."");
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'2', "\${".$v["name"]."}");
$ii++;
}
$objPHPExcel->getActiveSheet()->mergeCells('A4:G4');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4', "温馨提示:模板文件不存在,请在模板管理里先上传一个模板");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save($template_excel);
}

if(!file_exists($template_excel)){
$this->error("模板文件不存在");
}

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($template_excel);
$currentSheet = $objPHPExcel->getActiveSheet();
$allColumn = $currentSheet->getHighestColumn();
$allRow = $currentSheet->getHighestRow();

$columnIndex = PHPExcel_Cell::columnIndexFromString($allColumn);
for($i=1;$i<=$allRow;$i++)
{
for($j=0;$j<$columnIndex;$j++){
$colum = PHPExcel_Cell::stringFromColumnIndex($j);
$value = trim($currentSheet->getCellByColumnAndRow($j,$i)->getValue());//获取到值
foreach($list as $k => $v){
if(!is_array($v["value"])){
$value = $this->setHtmlValue($k,$v["value"],$value,false);
$currentSheet->setCellValue($colum.$i, $value);
}
}
}
}
$filename = $filename.".".$filetype;
ob_clean();
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $timestamp + 86400) . ' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', $timestamp + 86400) . ' GMT');
header('Cache-control: max-age=86400');
header('Content-Encoding: utf-8');
header("Content-Disposition: attachment; filename=\"{$filename}\"");
header("Content-type: application/vnd.ms-excel");
header("Content-Transfer-Encoding: binary");
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
保存$objWriter->save($template_excel);生成的模板文件是正常的,但$objWriter->save('php://output');通过浏览器下载下来的文件就乱码不正常了
乱码:
正常: