用phpexcel 导出不能打开问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用phpexcel 导出不能打开问题相关的知识,希望对你有一定的参考价值。

phpexcel导出excel出现这错误
,在xp中导出是没问题的,在win64中导出就出现这提示了贴上代码
public function export_excel($cols, $data, $filename)
$objPHPExcel = new PHPExcel();
//设置标题
foreach($cols as $k => $v)
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($k.'1', $v['name']);


//导出数据
$i = 2;
foreach($data as $row)
foreach($cols as $k => $v)
//$objPHPExcel->setActiveSheetIndex(0)->setCellValue($k.$i, $row[$v['field']]);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($k.$i, $row[$v['field']]);


$i++;

//设置列宽
foreach($cols as $k => $v)
if (empty($v['width'])) continue;
$objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth($v['width']);


//直接下载
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');

//操作日志
$this->write_log(ConstantsCMP::LOG_MODULE_EXPORT_EXCEL);
exit;


补充:php编码是utf-8无bom编码

自己写吧    别用PHPExcel了

//$fileName文件名
//$headArr标题
//$data数据
public function getExcel($fileName,$headArr,$data)
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=$fileName.xls");
header("Pragma: no-cache");
header("Expires: 0");
array_unshift($data,$headArr);
foreach($data as $key => $val)
$data[$key]=implode("\\t", $data[$key]);

echo iconv(\'utf-8\',\'gbk\',implode("\\n",$data));

这是我自己写的    比较简单

如果需求没要求导出的excel要排版  设置样式之类的话

就凑合着用吧

参考技术A 那个的版本比较老了,你导出的格式为XLS的EXCEL就行了追问

xls导出的好像也是打不开的啊

以上是关于用phpexcel 导出不能打开问题的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL文件打不开!PHPExcel导出文件的错误

phpexce 表格上传与下载

PhpExcel类,在windows系统下能导出Excel文件,但是在linux下就不行,怎么回事?

Yii 2 —— 导入Excel文件

通过 PhpExcel 导出 csv 文件时从文本中删除双引号并用记事本打开它

phpExcel导出excel打不开问题