`

phpexcel导出文件或者文件扩展名不一致 或 导出的文件或文件扩展名无效

阅读更多

我们在引入phpcxcel类库中进行导出数据的excel文件,结果出现打开的文件和扩展名不一致,或者打开的文件和文件扩展名无效,这时候我们该如何处理呢?

如下是导出的函数(自定义):

public function exportExcel($expTitle,$expCellName,$expTableData,$fileName=""){

$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称

$fileName = $fileName.'_'.time().date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定

$cellNum = count($expCellName);

$dataNum = count($expTableData);

$objPHPExcel = new \PHPExcel();

 

$objPHPExcel->getProperties()->setCreator("ctos")

->setLastModifiedBy("ctos")

->setTitle("Office 2007 XLSX Test Document")

->setSubject("Office 2007 XLSX Test Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

 

$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');

$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格

$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $expTitle.'  Export time:'.date('Y-m-d H:i:s'));

for($i=0;$i<$cellNum;$i++){

$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);

}

// Miscellaneous glyphs, UTF-8

for($i=0;$i<$dataNum;$i++){

for($j=0;$j<$cellNum;$j++){

$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);

}

}

ob_end_clean();//清除缓冲区,避免乱码

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;

}

 

 

通过如上的代码我们发现ob_end_clean();//清除缓冲区,避免乱码,需要我们导出函数中添加此函数,还有头部处理,可以使用excel5或者excel2007,导出的数据都没有问题。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics