phpexcel浏览器下载文件内容乱码

wangzhaoxia0604 2015-04-22 11:31:41
$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');通过浏览器下载下来的文件就乱码不正常了
乱码:


正常:

...全文
172 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-04-22
  • 打赏
  • 举报
回复
去掉你程序文件的 BOM 头
wangzhaoxia0604 2015-04-22
  • 打赏
  • 举报
回复
去掉bom头还是不行

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧